You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2010/06/18 16:37:54 UTC
svn commit: r956017 -
/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaType.java
Author: jukka
Date: Fri Jun 18 14:37:54 2010
New Revision: 956017
URL: http://svn.apache.org/viewvc?rev=956017&view=rev
Log:
TIKA-89: Rename MimeType and MimeTypes
Keep media type parameters in an unmodifiable sorted map.
Modified:
tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaType.java
Modified: tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaType.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaType.java?rev=956017&r1=956016&r2=956017&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaType.java (original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/mime/MediaType.java Fri Jun 18 14:37:54 2010
@@ -36,8 +36,8 @@ public final class MediaType implements
*/
private static final long serialVersionUID = -3831000556189036392L;
- private static final Map<String, String> NO_PARAMETERS =
- new TreeMap<String, String>();
+ private static final SortedMap<String, String> NO_PARAMETERS =
+ Collections.unmodifiableSortedMap(new TreeMap<String, String>());
private static final Pattern SPECIAL =
Pattern.compile("[\\(\\)<>@,;:\\\\\"/\\[\\]\\?=]");
@@ -116,39 +116,44 @@ public final class MediaType implements
return null;
}
}
-
- MediaType result = new MediaType(type, subtype);
- String[] paramPieces = params.split(";");
- for (String paramPiece : paramPieces) {
- String[] keyValue = paramPiece.split("=");
- if (keyValue.length != 2) {
- continue;
- }
-
+
+ Map<String, String> parameters = new HashMap<String, String>();
+ for (String paramPiece : params.split(";")) {
+ String[] keyValue = paramPiece.split("=", 2);
String key = keyValue[0].trim();
if (key.length() > 0) {
- result.parameters.put(key, keyValue[1].trim());
+ if (keyValue.length > 1) {
+ parameters.put(key, keyValue[1].trim());
+ } else {
+ parameters.put(key, "");
+ }
}
}
-
- return result;
+ return new MediaType(type, subtype, parameters);
}
private final String type;
private final String subtype;
+ /**
+ * Immutable map of media type parameters.
+ */
private final SortedMap<String, String> parameters;
public MediaType(
String type, String subtype, Map<String, String> parameters) {
this.type = type.trim().toLowerCase(Locale.ENGLISH);
this.subtype = subtype.trim().toLowerCase(Locale.ENGLISH);
- this.parameters = new TreeMap<String, String>();
- for (Map.Entry<String, String> entry : parameters.entrySet()) {
- this.parameters.put(
- entry.getKey().trim().toLowerCase(Locale.ENGLISH),
- entry.getValue());
+ if (parameters.isEmpty()) {
+ this.parameters = NO_PARAMETERS;
+ } else {
+ SortedMap<String, String> map = new TreeMap<String, String>();
+ for (Map.Entry<String, String> entry : parameters.entrySet()) {
+ map.put(entry.getKey().trim().toLowerCase(Locale.ENGLISH),
+ entry.getValue());
+ }
+ this.parameters = Collections.unmodifiableSortedMap(map);
}
}
@@ -201,8 +206,8 @@ public final class MediaType implements
return !parameters.isEmpty();
}
- public Map<String, String> getParameters() {
- return Collections.unmodifiableMap(parameters);
+ public SortedMap<String, String> getParameters() {
+ return parameters;
}
public String toString() {