| 290 | } |
| 291 | |
| 292 | protected static class Context { |
| 293 | private FilterChain m_chain; |
| 294 | |
| 295 | private List<Handler> m_handlers; |
| 296 | |
| 297 | private int m_index; |
| 298 | |
| 299 | private HttpServletRequest m_request; |
| 300 | |
| 301 | private HttpServletResponse m_response; |
| 302 | |
| 303 | private boolean m_top; |
| 304 | |
| 305 | private String m_type; |
| 306 | |
| 307 | public Context(HttpServletRequest request, HttpServletResponse response, FilterChain chain, List<Handler> handlers) { |
| 308 | m_request = request; |
| 309 | m_response = response; |
| 310 | m_chain = chain; |
| 311 | m_handlers = handlers; |
| 312 | } |
| 313 | |
| 314 | public HttpServletRequest getRequest() { |
| 315 | return m_request; |
| 316 | } |
| 317 | |
| 318 | public HttpServletResponse getResponse() { |
| 319 | return m_response; |
| 320 | } |
| 321 | |
| 322 | public String getType() { |
| 323 | return m_type; |
| 324 | } |
| 325 | |
| 326 | public void handle() throws IOException, ServletException { |
| 327 | if (m_index < m_handlers.size()) { |
| 328 | Handler handler = m_handlers.get(m_index++); |
| 329 | |
| 330 | handler.handle(this); |
| 331 | } else { |
| 332 | m_chain.doFilter(m_request, m_response); |
| 333 | } |
| 334 | } |
| 335 | |
| 336 | public boolean isTop() { |
| 337 | return m_top; |
| 338 | } |
| 339 | |
| 340 | public void setTop(boolean top) { |
| 341 | m_top = top; |
| 342 | } |
| 343 | |
| 344 | public void setType(String type) { |
| 345 | m_type = type; |
| 346 | } |
| 347 | } |
| 348 | |
| 349 | protected static interface Handler { |
nothing calls this directly
no outgoing calls
no test coverage detected