protected void doStart() throws Exception { if (_handler!=null) _handler.start(); super.doStart(); }
protected void doStop() throws Exception { super.doStop(); if (_handler!=null) _handler.stop(); }
public Handler[] getChildHandlersByClass(Class byclass) { Object list = expandChildren(null,byclass); return (Handler[])LazyList.toArray(list, Handler.class); }
public void setServer(Server server) { Server old_server=getServer(); super.setServer(server); Handler[] h=getHandlers(); for (int i=0;h!=null && i<h.length;i++) h[i].setServer(server); if (server!=null && server!=old_server) server.getContainer().update(this, null,_handlers, "handler"); }
public void setServer(Server server) { Server old_server=getServer(); super.setServer(server); Handler h=getHandler(); if (h!=null) h.setServer(server); if (server!=null && server!=old_server) server.getContainer().update(this, null,_handler, "handler"); }
public Handler[] getChildHandlers() { Object list = expandChildren(null,null); return (Handler[])LazyList.toArray(list, Handler.class); }
protected void doStart() throws Exception { MultiException mex=new MultiException(); if (_handlers!=null) { for (int i=0;i<_handlers.length;i++) try{_handlers[i].start();}catch(Throwable e){mex.add(e);} } super.doStart(); mex.ifExceptionThrow(); }
protected void doStop() throws Exception { MultiException mex=new MultiException(); try { super.doStop(); } catch(Throwable e){mex.add(e);} if (_handlers!=null) { for (int i=_handlers.length;i-->0;) try{_handlers[i].stop();}catch(Throwable e){mex.add(e);} } mex.ifExceptionThrow(); }
public Handler getChildHandlerByClass(Class byclass) { // TODO this can be more efficient? Object list = expandChildren(null,byclass); if (list==null) return null; return (Handler)LazyList.get(list, 0); }
protected Object expandHandler(Handler handler, Object list, Class byClass) { if (handler==null) return list; if (handler!=null && (byClass==null || byClass.isAssignableFrom(handler.getClass()))) list=LazyList.add(list, handler); if (handler instanceof AbstractHandlerContainer) list=((AbstractHandlerContainer)handler).expandChildren(list, byClass); else if (handler instanceof HandlerContainer) { HandlerContainer container = (HandlerContainer)handler; Handler[] handlers=byClass==null?container.getChildHandlers():container.getChildHandlersByClass(byClass); list=LazyList.addArray(list, handlers); } return list; }