blob: 49b50629f7bea9f8e4cf4258a07a3f201abff1ef [file] [log] [blame]
package org.eclipse.equinox.http.servlet.internal;
import java.io.IOException;
import java.util.List;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FilterChainImpl implements FilterChain {
private List matchingFilterRegistrations;
private ServletRegistration registration;
private int filterIndex = 0;
private int filterCount;
public FilterChainImpl(List matchingFilterRegistrations, ServletRegistration registration) {
this.matchingFilterRegistrations = matchingFilterRegistrations;
this.registration = registration;
this.filterCount = matchingFilterRegistrations.size();
}
public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
if (filterIndex < filterCount) {
FilterRegistration filterRegistration = (FilterRegistration) matchingFilterRegistrations.get(filterIndex++);
filterRegistration.doFilter((HttpServletRequest) request, (HttpServletResponse) response, this);
return;
}
registration.service((HttpServletRequest) request, (HttpServletResponse) response);
}
}