Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1009 → Rev 1010

/hostadmiral/trunk/src/ak/hostadmiral/core/servlet/ListenerRegistratorServlet.java
0,0 → 1,75
package ak.hostadmiral.core.servlet;
 
import java.io.IOException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
 
import org.apache.log4j.Logger;
 
import ak.hostadmiral.core.model.*;
 
public class ListenerRegistratorServlet
extends GenericServlet
{
private static final Logger logger = Logger.getLogger(ListenerRegistratorServlet.class);
 
public void init()
throws ServletException
{
// users
register("UserCreatedListener", new Registrar() {
public void reg(Object o) {
UserManager.getInstance().addCreatedListener((UserCreatedListener)o);
}
});
register("UserModifiedListener", new Registrar() {
public void reg(Object o) {
UserManager.getInstance().addModifiedListener((UserModifiedListener)o);
}
});
register("UserBeforeDeleteListener", new Registrar() {
public void reg(Object o) {
UserManager.getInstance().addBeforeDeleteListener((UserBeforeDeleteListener)o);
}
});
register("UserDeletedListener", new Registrar() {
public void reg(Object o) {
UserManager.getInstance().addDeletedListener((UserDeletedListener)o);
}
});
}
 
private void register(String paramName, Registrar registrar)
{
String param = getInitParameter(paramName);
if(param == null) return;
 
String[] names = param.split("\\s*;\\s*");
for(int i = 0; i < names.length; i++) {
String name = names[i].trim();
if(name.equals("")) continue;
try {
Class c = Class.forName(name);
registrar.reg(c.newInstance());
}
catch(ClassCastException ex) {
logger.error("class " + name + " has wrong type", ex);
}
catch(Exception ex) {
logger.error("cannot get class " + name, ex);
}
}
}
 
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException
{
}
 
private interface Registrar
{
public void reg(Object o);
}
}