## org.apache.axis.handlers
Class BasicHandler

    java.lang.Object
      org.apache.axis.handlers.BasicHandler

All Implemented Interfaces:
  Handler, java.io.Serializable

Direct Known Subclasses:
  AxisEngine, BasicProvider, CommonsHTTPSender, DebugHandler, EchoHandler, ErrorHandler, FaultableHandler, HTTPActionHandler, HTTPAuthHandler, HTTPSender, JavaSender, JAXRPCHandler, JMSSender, JWSHandler, LocalResponder, LocalSender, LogHandler, LogMessage, MailSender, MD5AttachHandler, MustUnderstandChecker, SimpleAuthenticationHandler, SimpleAuthorizationHandler, SimpleChain, SimpleSessionHandler, SOAPMonitorHandler, URLMapper

public abstract class BasicHandler
extends java.lang.Object
implements Handler

`BasicHandler` is a utility class which implements simple property setting/getting behavior, and stubs out a lot of the Handler methods. Extend this class to make writing your Handlers easier, and then override what you need to.

Author:
  Glen Daniels (gdaniels@allaire.com), Doug Davis (dug@us.ibm.com
See Also:
  Serialized Form

Field Summary
`protected boolean` `makeLockable`
`protected java.lang.String` `name`
`protected java.util.Hashtable` `options`

Constructor Summary
`BasicHandler()`

Method Summary
`boolean` `canHandleBlock(QName qname)` Indicate if this handler can process `qname`.
`void` `cleanup()` Cleanup is called when the chain containing this Handler object is done processing the chain.
`void` `generateWSDL(MessageContext msgContext)` Obtain WSDL information.
`org.w3c.dom.Element` `getDeploymentData(org.w3c.dom.Document doc)` This will return the root element of an XML doc that describes the deployment information about this handler.
`java.lang.String` `getName()` Return the name (i.e.
`java.lang.Object` `getOption(java.lang.String name)` Returns the option corresponding to the 'name' given
`java.util.Hashtable` `getOptions()` Return the entire list of options
`java.util.List` `getUnderstoodHeaders()` Return a list of QNames which this Handler understands.
`void` `init()` Stubbed-out methods.
`protected void` `initHashtable()`
`void` `onFault(MessageContext msgContext)` Called when a subsequent handler throws a fault.
`void` `setName(java.lang.String name)` Set the name (i.e.
`void` `setOption(java.lang.String name, java.lang.Object value)` Set the given option (name/value) in this handler's bag of options
`boolean` `setOptionDefault(java.lang.String name, java.lang.Object value)` Set a default value for the given option: if the option is not already set, then set it.
`void` `setOptions(java.util.Hashtable opts)` Sets a whole list of options.
`protected void` `setOptionsLockable(boolean makeLockable)` Should this Handler use a LockableHashtable for options? Default is 'false'.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.axis.Handler
`invoke`

Field Detail

### makeLockable

    protected boolean makeLockable

### options

    protected java.util.Hashtable options

### name

    protected java.lang.String name

Constructor Detail

### BasicHandler

    public BasicHandler()

Method Detail

### setOptionsLockable

    protected void setOptionsLockable(boolean makeLockable)

  Should this Handler use a LockableHashtable for options? Default is 'false'.

### initHashtable

    protected void initHashtable()

### init

    public void init()

  Stubbed-out methods. Override in your child class to implement any real behavior. Note that there is NOT a stub for invoke(), since we require any Handler derivative to implement that.

  Specified by:
    `init` in interface `Handler`

### cleanup

    public void cleanup()

  Description copied from interface: `Handler`
  Cleanup is called when the chain containing this Handler object is done processing the chain.

  Specified by:
    `cleanup` in interface `Handler`

### canHandleBlock

    public boolean canHandleBlock(QName qname)

  Description copied from interface: `Handler`
  Indicate if this handler can process `qname`.

  Specified by:
    `canHandleBlock` in interface `Handler`
  Parameters:
    `qname` - the `QName` to check
  Returns:
    true if this `Handler` can handle `qname`, false otherwise``

### onFault

    public void onFault(MessageContext msgContext)

  Description copied from interface: `Handler`
  Called when a subsequent handler throws a fault.

  Specified by:
    `onFault` in interface `Handler`
  Parameters:
    `msgContext` - the `MessageContext` to process the fault to

### setOption

    public void setOption(java.lang.String name,
                          java.lang.Object value)

  Set the given option (name/value) in this handler's bag of options

  Specified by:
    `setOption` in interface `Handler`
  Parameters:
    `name` - the name of the option
    `value` - the new value of the option

### setOptionDefault

    public boolean setOptionDefault(java.lang.String name,
                                    java.lang.Object value)

  Set a default value for the given option: if the option is not already set, then set it. if the option is already set, then do not set it.

  If this is called multiple times, the first with a non-null value if 'value' will set the default, remaining calls will be ignored.

  Returns true if value set (by this call), otherwise false;

### getOption

    public java.lang.Object getOption(java.lang.String name)

  Returns the option corresponding to the 'name' given

  Specified by:
    `getOption` in interface `Handler`
  Parameters:
    `name` - the name of the option
  Returns:
    the value of the option

### getOptions

    public java.util.Hashtable getOptions()

  Return the entire list of options

  Specified by:
    `getOptions` in interface `Handler`
  Returns:
    a `Hashset` containing all name/value pairs

### setOptions

    public void setOptions(java.util.Hashtable opts)

  Description copied from interface: `Handler`
  Sets a whole list of options.

  Specified by:
    `setOptions` in interface `Handler`
  Parameters:
    `opts` - a `Hashtable` of name-value pairs to use

### setName

    public void setName(java.lang.String name)

  Set the name (i.e. registry key) of this Handler

  Specified by:
    `setName` in interface `Handler`
  Parameters:
    `name` - the new name

### getName

    public java.lang.String getName()

  Return the name (i.e. registry key) for this Handler

  Specified by:
    `getName` in interface `Handler`
  Returns:
    the name for this `Handler`

### getDeploymentData

    public org.w3c.dom.Element getDeploymentData(org.w3c.dom.Document doc)

  Description copied from interface: `Handler`
  This will return the root element of an XML doc that describes the deployment information about this handler. This is NOT the WSDL, this is all of the static internal data use by Axis - WSDL takes into account run-time information (like which service we're talking about) this is just the data that's stored in the registry. Used by the 'list' Admin function.

  Specified by:
    `getDeploymentData` in interface `Handler`
  Parameters:
    `doc` - a `Document` within which to build the deployment data
  Returns:
    an Element representing the deployment data

### generateWSDL

    public void generateWSDL(MessageContext msgContext)
                      throws AxisFault

  Description copied from interface: `Handler`
  Obtain WSDL information. Some Handlers will implement this by merely setting properties in the MessageContext, others (providers) will take responsibility for doing the "real work" of generating WSDL for a given service.

  Specified by:
    `generateWSDL` in interface `Handler`
  Parameters:
    `msgContext` - the `MessageContext` to generate the WSDL to
  Throws:
    `AxisFault` - if there was a problem generating the WSDL

### getUnderstoodHeaders

    public java.util.List getUnderstoodHeaders()

  Return a list of QNames which this Handler understands. By returning a particular QName here, we are committing to fulfilling any contracts defined in the specification of the SOAP header with that QName.

  Specified by:
    `getUnderstoodHeaders` in interface `Handler`
  Returns:
    a List of `QName` instances

Copyright © 2005 Apache Web Services Project. All Rights Reserved.