1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.internal.util;
21
22 import org.apache.commons.lang.StringUtils;
23
24 public class ContentType {
25 private String primaryType;
26 private String subType;
27
28 public ContentType(String contentType) {
29 parse(contentType);
30 }
31
32 private void parse(String contentType) {
33
34 String[] values = StringUtils.split(contentType, "/");
35 if (values.length == 2) {
36 primaryType = values[0];
37 subType = values[1];
38 } else {
39 throw new IllegalArgumentException("ContentType '" + contentType + "' not recognized.");
40 }
41 }
42
43 public String getPrimaryType() {
44 return primaryType;
45 }
46
47 public String getSubType() {
48 return subType;
49 }
50
51 public boolean match(ContentType contentType) {
52 return primaryType.equalsIgnoreCase(contentType.getPrimaryType())
53 && ("*".equals(subType) || subType.equalsIgnoreCase(contentType.getSubType()));
54 }
55
56 public String toString() {
57 return primaryType + "/" + subType;
58 }
59
60 public static ContentType valueOf(String s) {
61 return new ContentType(s);
62 }
63 }