@ManagedObject(value="Handler of multiple handlers") public class HandlerCollection extends AbstractHandlerContainer
The default implementations calls all handlers in list order, regardless of the response status or exceptions. Derived implementation may alter the order or the conditions of calling the contained handlers.
Modifier and Type | Class and Description |
---|---|
protected static class |
HandlerCollection.Handlers |
AbstractHandler.ErrorDispatchHandler
AbstractLifeCycle.AbstractLifeCycleListener
LifeCycle.Listener
Container.InheritedListener, Container.Listener
Modifier and Type | Field and Description |
---|---|
protected java.util.concurrent.atomic.AtomicReference<HandlerCollection.Handlers> |
_handlers |
private boolean |
_mutableWhenRunning |
Constructor and Description |
---|
HandlerCollection() |
HandlerCollection(boolean mutableWhenRunning,
Handler... handlers) |
HandlerCollection(Handler... handlers) |
Modifier and Type | Method and Description |
---|---|
void |
addHandler(Handler handler)
Adds a handler.
|
void |
destroy()
Destroys the managed Destroyable beans in the reverse order they were added.
|
protected void |
expandChildren(java.util.List<Handler> list,
java.lang.Class<?> byClass) |
Handler[] |
getHandlers() |
void |
handle(java.lang.String target,
Request baseRequest,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Handle a request.
|
protected HandlerCollection.Handlers |
newHandlers(Handler[] handlers) |
void |
prependHandler(Handler handler)
Prepends a handler.
|
void |
removeHandler(Handler handler) |
void |
setHandlers(Handler[] handlers) |
protected boolean |
updateHandlers(HandlerCollection.Handlers old,
HandlerCollection.Handlers handlers) |
doShutdown, expandHandler, findContainerOf, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass, setServer
doError, doStart, doStop, getServer
addBean, addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, start, stop, stop
dumpObjects, dumpSelf
private final boolean _mutableWhenRunning
protected final java.util.concurrent.atomic.AtomicReference<HandlerCollection.Handlers> _handlers
public HandlerCollection()
public HandlerCollection(Handler... handlers)
public HandlerCollection(boolean mutableWhenRunning, Handler... handlers)
@ManagedAttribute(value="Wrapped handlers", readonly=true) public Handler[] getHandlers()
public void setHandlers(Handler[] handlers)
handlers
- the array of handlers to set.protected HandlerCollection.Handlers newHandlers(Handler[] handlers)
protected boolean updateHandlers(HandlerCollection.Handlers old, HandlerCollection.Handlers handlers)
public void handle(java.lang.String target, Request baseRequest, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
Handler
handle
in interface Handler
handle
in class AbstractHandler
target
- The target of the request - either a URI or a name.baseRequest
- The original unwrapped request object.request
- The request either as the Request
object or a wrapper of that request. The
HttpConnection.getCurrentConnection()
.getHttpChannel()
.getRequest()
method can be used access the Request object if required.response
- The response as the Response
object or a wrapper of that request. The
HttpConnection.getCurrentConnection()
.getHttpChannel()
.getResponse()
method can be used access the Response object if required.java.io.IOException
- if unable to handle the request or response processingjavax.servlet.ServletException
- if unable to handle the request or response due to underlying servlet issuepublic void addHandler(Handler handler)
public void prependHandler(Handler handler)
public void removeHandler(Handler handler)
protected void expandChildren(java.util.List<Handler> list, java.lang.Class<?> byClass)
expandChildren
in class AbstractHandlerContainer
public void destroy()
ContainerLifeCycle
destroy
in interface Handler
destroy
in interface Destroyable
destroy
in class AbstractHandler