## org.mortbay.jetty.handler
Class HandlerWrapper

    java.lang.Object
      org.mortbay.component.AbstractLifeCycle
          org.mortbay.jetty.handler.AbstractHandler
              org.mortbay.jetty.handler.AbstractHandlerContainer
                  org.mortbay.jetty.handler.HandlerWrapper

All Implemented Interfaces:
  LifeCycle, Handler, HandlerContainer

Direct Known Subclasses:
  ContextHandler, RequestLogHandler, RewriteHandler, 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` `removeHandler(Handler handler)`
`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
`destroy, getServer, toString`

Methods inherited from class org.mortbay.component.AbstractLifeCycle
`isFailed, isRunning, isStarted, isStarting, isStopped, 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, isStopped, 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` -

### removeHandler

    public void removeHandler(Handler 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:
    `IOException`
    `ServletException`

### 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`

Copyright © 2008 Mort Bay Consulting. All Rights Reserved.