You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/01/28 21:43:57 UTC
svn commit: r1727435 - in /webservices/axiom/trunk/axiom-api/src:
main/java/org/apache/axiom/mime/ContentTypeTokenizer.java
main/java/org/apache/axiom/mime/MediaType.java
test/java/org/apache/axiom/mime/MediaTypeTest.java
Author: veithen
Date: Thu Jan 28 20:43:57 2016
New Revision: 1727435
URL: http://svn.apache.org/viewvc?rev=1727435&view=rev
Log:
Add constructor to parse media types.
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java
webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java?rev=1727435&r1=1727434&r2=1727435&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/ContentTypeTokenizer.java Thu Jan 28 20:43:57 2016
@@ -123,4 +123,10 @@ final class ContentTypeTokenizer {
throw new ParseException("Unexpected end of string; expected '" + c + "'", index);
}
}
+
+ void requireEndOfString() throws ParseException {
+ if (index != s.length()) {
+ throw new ParseException("Unexpected character '" + s.charAt(index) + "'; expected end of string", index);
+ }
+ }
}
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java?rev=1727435&r1=1727434&r2=1727435&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/mime/MediaType.java Thu Jan 28 20:43:57 2016
@@ -18,6 +18,8 @@
*/
package org.apache.axiom.mime;
+import java.text.ParseException;
+
/**
* Represents a media type as defined by <a href="http://tools.ietf.org/html/rfc2045">RFC 2045</a>
* and <a href="http://tools.ietf.org/html/rfc2046">RFC 2046</a>. It specifies a primary type (e.g.
@@ -71,6 +73,22 @@ public final class MediaType {
}
/**
+ * Constructor that parses a media type.
+ *
+ * @param type
+ * the media type to parse
+ * @throws ParseException
+ * if the value is invalid and could not be parsed
+ */
+ public MediaType(String type) throws ParseException {
+ ContentTypeTokenizer tokenizer = new ContentTypeTokenizer(type);
+ primaryType = tokenizer.requireToken();
+ tokenizer.require('/');
+ subType = tokenizer.requireToken();
+ tokenizer.requireEndOfString();
+ }
+
+ /**
* Get the primary type.
*
* @return the primary type
Modified: webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java?rev=1727435&r1=1727434&r2=1727435&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java (original)
+++ webservices/axiom/trunk/axiom-api/src/test/java/org/apache/axiom/mime/MediaTypeTest.java Thu Jan 28 20:43:57 2016
@@ -18,6 +18,8 @@
*/
package org.apache.axiom.mime;
+import java.text.ParseException;
+
import junit.framework.TestCase;
public class MediaTypeTest extends TestCase {
@@ -66,4 +68,28 @@ public class MediaTypeTest extends TestC
MediaType mt = new MediaType("application", "octet-stream");
assertEquals("application/octet-stream", mt.toString());
}
+
+ public void testParse() throws Exception {
+ MediaType mt = new MediaType("application/octet-stream");
+ assertEquals("application", mt.getPrimaryType());
+ assertEquals("octet-stream", mt.getSubType());
+ }
+
+ public void testParseInvalid1() {
+ try {
+ new MediaType("text/");
+ fail("Expected ParseException");
+ } catch (ParseException ex) {
+ // Expected
+ }
+ }
+
+ public void testParseInvalid2() {
+ try {
+ new MediaType("text/xml;");
+ fail("Expected ParseException");
+ } catch (ParseException ex) {
+ // Expected
+ }
+ }
}