package org.apache.geronimo.tomcat.valve;
import java.io.IOException;
import javax.servlet.ServletException;
import org.apache.catalina.Valve;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.valves.ValveBase;
import org.apache.geronimo.tomcat.interceptor.BeforeAfter;
public class GeronimoBeforeAfterValve extends ValveBase{
private final BeforeAfter beforeAfter;
private final int contextIndexCount;
public GeronimoBeforeAfterValve(BeforeAfter beforeAfter, int contextIndexCount) {
this.beforeAfter = beforeAfter;
this.contextIndexCount = contextIndexCount;
}
public void invoke(Request request, Response response) throws IOException, ServletException {
Object context[] = new Object[contextIndexCount];
if (beforeAfter != null){
beforeAfter.before(context, request, response);
}
// Pass this request on to the next valve in our pipeline
getNext().invoke(request, response);
if (beforeAfter != null){
beforeAfter.after(context, request, response);
}
}
}