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); |
} |
} |