org.mortbay.jetty.handler
Class HandlerWrapper

java.lang.Object
  extended byorg.mortbay.component.AbstractLifeCycle
      extended byorg.mortbay.jetty.handler.AbstractHandler
          extended byorg.mortbay.jetty.handler.AbstractHandlerContainer
              extended byorg.mortbay.jetty.handler.HandlerWrapper
All Implemented Interfaces:
Handler, HandlerContainer, LifeCycle
Direct Known Subclasses:
ContextHandler, RequestLogHandler, SecurityHandler, Server, SessionHandler, StatisticsHandler

public class HandlerWrapper
extends AbstractHandlerContainer

A HandlerWrapper acts as a Handler but delegates the handle method and life cycle events to a delegate. This is primarily used to implement the Decorator pattern.

Author:
gregw

Field Summary
 
Fields inherited from class org.mortbay.jetty.handler.AbstractHandler
_string
 
Fields inherited from interface org.mortbay.jetty.Handler
ALL, DEFAULT, ERROR, FORWARD, INCLUDE, REQUEST
 
Constructor Summary
HandlerWrapper()
           
 
Method Summary
 void addHandler(Handler handler)
          Add a handler.
protected  void doStart()
           
protected  void doStop()
           
protected  Object expandChildren(Object list, Class byClass)
           
 Handler getHandler()
           
 void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch)
          Handle a request.
 void setHandler(Handler handler)
           
 void setServer(Server server)
           
 
Methods inherited from class org.mortbay.jetty.handler.AbstractHandlerContainer
expandHandler, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass
 
Methods inherited from class org.mortbay.jetty.handler.AbstractHandler
getServer, toString
 
Methods inherited from class org.mortbay.component.AbstractLifeCycle
isFailed, isRunning, isStarted, isStarting, isStopping, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mortbay.component.LifeCycle
isFailed, isRunning, isStarted, isStarting, isStopping, start, stop
 

Constructor Detail

HandlerWrapper

public HandlerWrapper()
Method Detail

getHandler

public Handler getHandler()
Returns:
Returns the handlers.

setHandler

public void setHandler(Handler handler)
Parameters:
handler - Set the Handler which should be wrapped.

addHandler

public void addHandler(Handler handler)
Add a handler. This implementation of addHandler calls setHandler with the passed handler. If this HandlerWrapper had a previous wrapped handler, then it is passed to a call to addHandler on the passed handler. Thus this call can add a handler in a chain of wrapped handlers.

Parameters:
handler -

doStart

protected void doStart()
                throws Exception
Overrides:
doStart in class AbstractHandler
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Overrides:
doStop in class AbstractHandler
Throws:
Exception

handle

public void handle(String target,
                   HttpServletRequest request,
                   HttpServletResponse response,
                   int dispatch)
            throws IOException,
                   ServletException
Description copied from interface: Handler
Handle a request.

Parameters:
target - The target of the request - either a URI or a name.
request - The request either as the Request object or a wrapper of that request. The HttpConnection.getCurrentConnection() 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() method can be used access the Response object if required.
dispatch - The dispatch mode: Handler.REQUEST, Handler.FORWARD, Handler.INCLUDE, Handler.ERROR
Throws:
ServletException
IOException

setServer

public void setServer(Server server)
Specified by:
setServer in interface Handler
Overrides:
setServer in class AbstractHandler

expandChildren

protected Object expandChildren(Object list,
                                Class byClass)
Overrides:
expandChildren in class AbstractHandlerContainer