package com.googlecode.mycontainer.commons.servlet.json;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PojoInvokerFilter extends InvokerFilter {
private String root;
public void init(FilterConfig config) throws ServletException {
this.root = config.getInitParameter("root");
if (root == null) {
root = "";
}
root = root.trim();
if (root.length() > 0 && !root.endsWith(".")) {
root += ".";
}
super.init(config);
}
@Override
protected Object lookup(HttpServletRequest req, HttpServletResponse resp,
String name, String method, String[] args) {
try {
Class<?> clazz = Class.forName(root + name);
Object obj = clazz.newInstance();
return obj;
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}