Package org.apache.axis
Class SimpleChain
- java.lang.Object
-
- org.apache.axis.handlers.BasicHandler
-
- org.apache.axis.SimpleChain
-
- 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
Fields Modifier and Type Field Description protected java.util.Vector
handlers
protected boolean
invoked
-
Fields inherited from class org.apache.axis.handlers.BasicHandler
makeLockable, name, options
-
-
Constructor Summary
Constructors Constructor Description SimpleChain()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHandler(Handler handler)
Adds a handler to the end of the chain.boolean
canHandleBlock(QName qname)
Indicate if this handler can processqname
.void
cleanup()
Cleanup is called when the chain containing this Handler object is done processing the chain.boolean
contains(Handler handler)
Discover if a handler is in this 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.void
init()
Stubbed-out methods.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
-
-
-
-
Method Detail
-
init
public void init()
Description copied from class:BasicHandler
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 interfaceHandler
- Overrides:
init
in classBasicHandler
-
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 interfaceHandler
- Overrides:
cleanup
in classBasicHandler
-
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.
-
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 interfaceHandler
- Overrides:
generateWSDL
in classBasicHandler
- Parameters:
msgContext
- theMessageContext
to write the WSDL out to- Throws:
AxisFault
- if there was a problem writing the WSDL
-
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 interfaceHandler
- Overrides:
onFault
in classBasicHandler
- Parameters:
msgContext
- the context to process
-
canHandleBlock
public boolean canHandleBlock(QName qname)
Description copied from interface:Handler
Indicate if this handler can processqname
.- Specified by:
canHandleBlock
in interfaceHandler
- Overrides:
canHandleBlock
in classBasicHandler
- Parameters:
qname
- theQName
to check- Returns:
- true if this
Handler
can handleqname
, false otherwise
-
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 interfaceChain
- Parameters:
handler
- theHandler
to be added
-
contains
public boolean contains(Handler handler)
Description copied from interface:Chain
Discover if a handler is in this 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 interfaceChain
- Returns:
- an array of
Handler
s that have been added
-
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 interfaceHandler
- Overrides:
getDeploymentData
in classBasicHandler
- Parameters:
doc
- aDocument
within which to build the deployment data- Returns:
- an Element representing the deployment data
-
-