CacheControl berücksichtigt die Regeln bzgl. starken vs. schwachen ETag's
[percentcodec] / cachecontrol / src / main / java / de / halbekunst / juplo / cachecontrol / CacheControlFilter.java
1 package de.halbekunst.juplo.cachecontrol;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.util.Locale;
6 import javax.servlet.Filter;
7 import javax.servlet.FilterChain;
8 import javax.servlet.FilterConfig;
9 import javax.servlet.ServletException;
10 import javax.servlet.ServletOutputStream;
11 import javax.servlet.ServletRequest;
12 import javax.servlet.ServletResponse;
13 import javax.servlet.http.Cookie;
14 import javax.servlet.http.HttpServletResponse;
15
16 /**
17  *
18  * @author kai
19  */
20 public class CacheControlFilter implements Filter {
21
22
23   @Override
24   public void init(FilterConfig filterConfig) throws ServletException {
25     throw new UnsupportedOperationException("Not supported yet.");
26   }
27
28   @Override
29   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
30     throw new UnsupportedOperationException("Not supported yet.");
31   }
32
33   @Override
34   public void destroy() {
35     throw new UnsupportedOperationException("Not supported yet.");
36   }
37
38
39   class HttpServletResponseWrapper implements HttpServletResponse {
40
41     private final HttpServletResponse response;
42
43
44     HttpServletResponseWrapper(HttpServletResponse response) {
45       this.response = response;
46     }
47
48
49     @Override
50     public void addCookie(Cookie cookie) {
51       throw new UnsupportedOperationException("Not supported yet.");
52     }
53
54     @Override
55     public boolean containsHeader(String name) {
56       return response.containsHeader(name);
57     }
58
59     @Override
60     public String encodeURL(String url) {
61       return response.encodeURL(url);
62     }
63
64     @Override
65     public String encodeRedirectURL(String url) {
66       return response.encodeRedirectURL(url);
67     }
68
69     @Override
70     public String encodeUrl(String url) {
71       return response.encodeUrl(url);
72     }
73
74     @Override
75     public String encodeRedirectUrl(String url) {
76       return response.encodeRedirectUrl(url);
77     }
78
79     @Override
80     public void sendError(int sc, String msg) throws IOException {
81       throw new UnsupportedOperationException("Not supported yet.");
82     }
83
84     @Override
85     public void sendError(int sc) throws IOException {
86       throw new UnsupportedOperationException("Not supported yet.");
87     }
88
89     @Override
90     public void sendRedirect(String location) throws IOException {
91       throw new UnsupportedOperationException("Not supported yet.");
92     }
93
94     @Override
95     public void setDateHeader(String name, long date) {
96       throw new UnsupportedOperationException("Not supported yet.");
97     }
98
99     @Override
100     public void addDateHeader(String name, long date) {
101       throw new UnsupportedOperationException("Not supported yet.");
102     }
103
104     @Override
105     public void setHeader(String name, String value) {
106       throw new UnsupportedOperationException("Not supported yet.");
107     }
108
109     @Override
110     public void addHeader(String name, String value) {
111       throw new UnsupportedOperationException("Not supported yet.");
112     }
113
114     @Override
115     public void setIntHeader(String name, int value) {
116       throw new UnsupportedOperationException("Not supported yet.");
117     }
118
119     @Override
120     public void addIntHeader(String name, int value) {
121       throw new UnsupportedOperationException("Not supported yet.");
122     }
123
124     @Override
125     public void setStatus(int sc) {
126       throw new UnsupportedOperationException("Not supported yet.");
127     }
128
129     @Override
130     public void setStatus(int sc, String sm) {
131       throw new UnsupportedOperationException("Not supported yet.");
132     }
133
134     @Override
135     public String getCharacterEncoding() {
136       return response.getCharacterEncoding();
137     }
138
139     @Override
140     public String getContentType() {
141       return response.getContentType();
142     }
143
144     @Override
145     public ServletOutputStream getOutputStream() throws IOException {
146       throw new UnsupportedOperationException("Not supported yet.");
147     }
148
149     @Override
150     public PrintWriter getWriter() throws IOException {
151       throw new UnsupportedOperationException("Not supported yet.");
152     }
153
154     @Override
155     public void setCharacterEncoding(String charset) {
156       response.setCharacterEncoding(charset);
157     }
158
159     @Override
160     public void setContentLength(int len) {
161       throw new UnsupportedOperationException("Not supported yet.");
162     }
163
164     @Override
165     public void setContentType(String type) {
166       response.setContentType(type);
167     }
168
169     @Override
170     public void setBufferSize(int size) {
171       throw new UnsupportedOperationException("Not supported yet.");
172     }
173
174     @Override
175     public int getBufferSize() {
176       throw new UnsupportedOperationException("Not supported yet.");
177     }
178
179     @Override
180     public void flushBuffer() throws IOException {
181       throw new UnsupportedOperationException("Not supported yet.");
182     }
183
184     @Override
185     public void resetBuffer() {
186       throw new UnsupportedOperationException("Not supported yet.");
187     }
188
189     @Override
190     public boolean isCommitted() {
191       throw new UnsupportedOperationException("Not supported yet.");
192     }
193
194     @Override
195     public void reset() {
196       throw new UnsupportedOperationException("Not supported yet.");
197     }
198
199     @Override
200     public void setLocale(Locale loc) {
201       response.setLocale(loc);
202     }
203
204     @Override
205     public Locale getLocale() {
206       return response.getLocale();
207     }
208   }
209 }