1 package com.atlassian.gzipfilter.selector;
2
3 import org.apache.commons.lang.StringUtils;
4
5 import java.util.Collections;
6 import java.util.HashMap;
7 import java.util.Map;
8 import java.util.regex.Pattern;
9
10
11
12
13 public class PatternMatcher
14 {
15
16
17
18
19 private final Map patternCache = Collections.synchronizedMap(new HashMap());
20
21
22
23
24
25
26 public boolean matches(String contentType, String mimeTypesToGzip)
27 {
28 final String[] mimeTypes = StringUtils.split(mimeTypesToGzip,",");
29 for (int i = 0; i < mimeTypes.length; i++)
30 {
31 String mimeType = mimeTypes[i].trim();
32 Pattern p = (Pattern) patternCache.get(mimeType);
33 if (p == null)
34 {
35 p = Pattern.compile(mimeType);
36 patternCache.put(mimeType, p);
37 }
38
39 if (p.matcher(contentType).matches())
40 {
41 return true;
42 }
43 }
44 return false;
45 }
46
47 }