1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.util;
35
36 import info.magnolia.context.MgnlContext;
37
38 import javax.servlet.http.HttpServletRequest;
39
40 import org.apache.commons.lang.builder.ToStringBuilder;
41 import org.apache.commons.lang.builder.ToStringStyle;
42
43
44
45
46
47
48
49 public class UrlPatternDelegate implements PatternDelegate {
50
51 private String url;
52
53 private SimpleUrlPattern urlPattern;
54
55 private String host;
56
57 private SimpleUrlPattern hostPattern;
58
59 private Object delegate;
60
61 private String originalUrl;
62
63 private SimpleUrlPattern originalUrlPattern;
64
65
66
67
68 public String getUrl() {
69 return url;
70 }
71
72 public String getOriginalUrl() {
73 return originalUrl;
74 }
75
76
77
78
79
80 public void setUrl(String pattern) {
81 this.url = pattern;
82 this.urlPattern = new SimpleUrlPattern(pattern);
83 }
84
85 public String getHost() {
86 return host;
87 }
88
89
90
91
92
93 public void setHost(String host) {
94 this.host = host;
95 this.hostPattern = new SimpleUrlPattern(host);
96 }
97
98 public void setOriginalUrl(String pattern) {
99 this.originalUrl = pattern;
100 this.originalUrlPattern = new SimpleUrlPattern(pattern);
101 }
102
103
104
105
106
107 @Override
108 public boolean match(HttpServletRequest request) {
109
110 boolean match = true;
111
112 if (hostPattern != null) {
113 match = hostPattern.match(request.getServerName());
114 }
115
116 if (urlPattern != null) {
117 match = urlPattern.match(MgnlContext.getAggregationState().getCurrentURI());
118 }
119
120 if (originalUrlPattern != null) {
121 match = originalUrlPattern.match(MgnlContext.getAggregationState().getOriginalURI());
122 }
123
124 return match;
125 }
126
127
128
129
130
131 public void setDelegate(Object delegate) {
132 this.delegate = delegate;
133 }
134
135
136
137
138
139 @Override
140 public Object getDelegate() {
141 return delegate;
142 }
143
144
145
146
147 @Override
148 public String toString() {
149 return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("url", this.url).append(
150 "host",
151 this.host).toString();
152 }
153
154 }