## org.apache.axis
Class SimpleChain

    java.lang.Object
      |
      +--org.apache.axis.handlers.BasicHandler
            |
            +--org.apache.axis.SimpleChain

All Implemented Interfaces:
  Chain, Handler, java.io.Serializable

Direct Known Subclasses:
  SimpleTargetedChain

public class SimpleChain
extends BasicHandler
implements Chain

A Simple Chain is a 'composite' Handler in that it aggregates a collection of Handlers and also acts as a Handler which delegates its operations to the collection.

A Simple Chain initially has no Handlers. Handlers may be added until the chain is invoke()d after which Handlers may not be added (and any attempt to do so will throw an exception).

Author:
  Doug Davis (dug@us.ibm.com), Glyn Normington (norm@uk.ibm.com)
See Also:
  Serialized Form

Field Summary
`protected java.util.Vector` `handlers`
`protected boolean` `invoked`
`protected static org.apache.commons.logging.Log` `log`

Fields inherited from class org.apache.axis.handlers.BasicHandler
`makeLockable, name, options`

Constructor Summary
`SimpleChain()`

Method Summary
`void` `addHandler(Handler handler)` Adds a handler to the end of the chain.
`boolean` `canHandleBlock(QName qname)` Can this Handler process this QName?
`void` `cleanup()` Cleanup is called when the chain containing this Handler object is done processing the chain.
`boolean` `contains(Handler handler)` Is this handler in the chain?
`void` `generateWSDL(MessageContext msgContext)` Iterate over the chain letting each handler have a crack at contributing to a WSDL description.
`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.
`Handler[]` `getHandlers()` Get the list of handlers in the chain - is Handler[] the right form?
`void` `init()` Init is called when the chain containing this Handler object is instantiated.
`void` `invoke(MessageContext msgContext)` Iterate over the chain invoking each handler.
`void` `onFault(MessageContext msgContext)` Notify the handlers in this chain because some handler later on has faulted - in reverse order.

Methods inherited from class org.apache.axis.handlers.BasicHandler
`getName, getOption, getOptions, getUnderstoodHeaders, initHashtable, setName, setOption, setOptionDefault, setOptions, setOptionsLockable`

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
`getName, getOption, getOptions, getUnderstoodHeaders, setName, setOption, setOptions`

Field Detail

### log

    protected static org.apache.commons.logging.Log log

### handlers

    protected java.util.Vector handlers

### invoked

    protected boolean invoked

Constructor Detail

### SimpleChain

    public SimpleChain()

Method Detail

### init

    public void init()

  Description copied from interface: `Handler`
  Init is called when the chain containing this Handler object is instantiated.

  Specified by:
    `init` in interface `Handler`
  Overrides:
    `init` in class `BasicHandler`

### 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`
  Overrides:
    `cleanup` in class `BasicHandler`

### invoke

    public void invoke(MessageContext msgContext)
                throws AxisFault

  Iterate over the chain invoking each handler. If there's a fault then call 'onFault' for each completed handler in reverse order, then rethrow the exception.

  Specified by:
    `invoke` in interface `Handler`
  Specified by:
    `invoke` in class `BasicHandler`
    `AxisFault`

### generateWSDL

    public void generateWSDL(MessageContext msgContext)
                      throws AxisFault

  Iterate over the chain letting each handler have a crack at contributing to a WSDL description.

  Specified by:
    `generateWSDL` in interface `Handler`
  Overrides:
    `generateWSDL` in class `BasicHandler`
    `AxisFault`

### onFault

    public void onFault(MessageContext msgContext)

  Notify the handlers in this chain because some handler later on has faulted - in reverse order. If any handlers have been added since we visited the chain, they will get notified too!

  Specified by:
    `onFault` in interface `Handler`
  Overrides:
    `onFault` in class `BasicHandler`

### canHandleBlock

    public boolean canHandleBlock(QName qname)

  Description copied from interface: `Handler`
  Can this Handler process this QName?

  Specified by:
    `canHandleBlock` in interface `Handler`
  Overrides:
    `canHandleBlock` in class `BasicHandler`

### addHandler

    public void addHandler(Handler handler)

  Description copied from interface: `Chain`
  Adds a handler to the end of the chain. May not be called after invoke.

  Specified by:
    `addHandler` in interface `Chain`

### contains

    public boolean contains(Handler handler)

  Description copied from interface: `Chain`
  Is this handler in the chain?

  Specified by:
    `contains` in interface `Chain`

### getHandlers

    public Handler[] getHandlers()

  Description copied from interface: `Chain`
  Get the list of handlers in the chain - is Handler[] the right form?

  Specified by:
    `getHandlers` in interface `Chain`

### 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`
  Overrides:
    `getDeploymentData` in class `BasicHandler`

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