Return-Path: Delivered-To: apmail-incubator-abdera-commits-archive@locus.apache.org Received: (qmail 11309 invoked from network); 7 Sep 2006 20:27:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 7 Sep 2006 20:27:46 -0000 Received: (qmail 39437 invoked by uid 500); 7 Sep 2006 20:27:46 -0000 Delivered-To: apmail-incubator-abdera-commits-archive@incubator.apache.org Received: (qmail 39425 invoked by uid 500); 7 Sep 2006 20:27:45 -0000 Mailing-List: contact abdera-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: abdera-dev@incubator.apache.org Delivered-To: mailing list abdera-commits@incubator.apache.org Received: (qmail 39416 invoked by uid 99); 7 Sep 2006 20:27:45 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2006 13:27:45 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Sep 2006 13:27:45 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id E6F061A981D; Thu, 7 Sep 2006 13:27:24 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r441207 - in /incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util: AbderaDataSource.java Constants.java MimeTypeHelper.java Date: Thu, 07 Sep 2006 20:27:24 -0000 To: abdera-commits@incubator.apache.org From: jmsnell@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20060907202724.E6F061A981D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: jmsnell Date: Thu Sep 7 13:27:24 2006 New Revision: 441207 URL: http://svn.apache.org/viewvc?view=rev&rev=441207 Log: Make the code used to determine the mime type of Abdera objects reusable Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbderaDataSource.java incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/Constants.java incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/MimeTypeHelper.java Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbderaDataSource.java URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbderaDataSource.java?view=diff&rev=441207&r1=441206&r2=441207 ============================================================================== --- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbderaDataSource.java (original) +++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/AbderaDataSource.java Thu Sep 7 13:27:24 2006 @@ -26,11 +26,6 @@ import javax.activation.DataSource; import org.apache.abdera.model.Base; -import org.apache.abdera.model.Document; -import org.apache.abdera.model.Element; -import org.apache.abdera.model.Entry; -import org.apache.abdera.model.Feed; -import org.apache.abdera.model.Service; public class AbderaDataSource implements DataSource { @@ -42,35 +37,7 @@ } public String getContentType() { - String type = null; - if (base instanceof Document) { - Document doc = (Document) base; - if (doc.getContentType() != null) { - type = doc.getContentType().toString(); - } else { - if (doc.getRoot() instanceof Feed || - doc.getRoot() instanceof Entry) { - type = "application/atom+xml"; - } else if (doc.getRoot() instanceof Service) { - type = "application/atomserv+xml"; - } else { - type = "application/xml"; - } - } - } else if (base instanceof Feed || base instanceof Entry) { - Document doc = ((Element)base).getDocument(); - if (doc != null && doc.getContentType() != null) - type = doc.getContentType().toString(); - if (type == null) - type = "application/atom+xml"; - } else if (base instanceof Service) { - Document doc = ((Element)base).getDocument(); - if (doc != null) - type = doc.getContentType().toString(); - if (type == null) - type = "application/atomserv+xml"; - } - return (type != null) ? type : "application/xml"; + return MimeTypeHelper.getMimeType(base); } public InputStream getInputStream() throws IOException { Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/Constants.java URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/Constants.java?view=diff&rev=441207&r1=441206&r2=441207 ============================================================================== --- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/Constants.java (original) +++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/Constants.java Thu Sep 7 13:27:24 2006 @@ -40,6 +40,8 @@ public static final String CONTROL_PREFIX = ""; public static final String ATOM_MEDIA_TYPE = "application/atom+xml"; + public static final String APP_MEDIA_TYPE = "application/atomserv+xml"; + public static final String XML_MEDIA_TYPE = "application/xml"; public static final String MULTIPART_MEDIA_TYPE = "multipart/related"; public static final String ATOM_NS = "http://www.w3.org/2005/Atom"; Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/MimeTypeHelper.java URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/MimeTypeHelper.java?view=diff&rev=441207&r1=441206&r2=441207 ============================================================================== --- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/MimeTypeHelper.java (original) +++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/util/MimeTypeHelper.java Thu Sep 7 13:27:24 2006 @@ -20,6 +20,13 @@ import javax.activation.MimeType; import javax.activation.MimeTypeParseException; +import org.apache.abdera.model.Base; +import org.apache.abdera.model.Document; +import org.apache.abdera.model.Element; +import org.apache.abdera.model.Entry; +import org.apache.abdera.model.Feed; +import org.apache.abdera.model.Service; + public class MimeTypeHelper { public static boolean isMatch(String a, String b) { @@ -61,4 +68,29 @@ } return answer; } + + public static String getMimeType(T base) { + String type = null; + if (base instanceof Document) { + Document doc = (Document)base; + MimeType mt = doc.getContentType(); + type = (mt != null) ? mt.toString() : getMimeType(doc.getRoot()); + } else if (base instanceof Element) { + Element el = (Element)base; + if (el.getDocument() != null) { + MimeType mt = el.getDocument().getContentType(); + type = (mt != null) ? mt.toString() : null; + } + if (type == null) { + if (el instanceof Feed || el instanceof Entry) + type = Constants.ATOM_MEDIA_TYPE; + else if (el instanceof Service) + type = Constants.APP_MEDIA_TYPE; + else + type = Constants.XML_MEDIA_TYPE; + } + } + return (type != null) ? type : Constants.XML_MEDIA_TYPE; + } } +