class DispatchHandler extends java.lang.Object implements ElementHandler
DispatchHandler implements the ElementHandler
interface and provides a means to register multiple
ElementHandler instances to be used by an event based
processor. This is a special ElementHandler in that it's
onStart and onEnd implementation methods are called for every
element encountered during the parse. It then delegates to other
ElementHandler instances registered with it to process the
elements encountered.
| Modifier and Type | Field and Description |
|---|---|
private boolean |
atRoot
Whether the parser is at the root element or not
|
private ElementHandler |
defaultHandler
ElementHandler to use by default for element paths with no
handlers registered |
private java.util.HashMap<java.lang.String,ElementHandler> |
handlers
HashMap maintains the mapping between element paths and
handlers |
private java.util.ArrayList<ElementHandler> |
handlerStack
maintains a stack of previously encountered handlers
|
private java.lang.String |
path
The current path in the XML tree (i.e.
|
private java.util.ArrayList<java.lang.String> |
pathStack
maintains a stack of previously encountered paths
|
| Constructor and Description |
|---|
DispatchHandler() |
| Modifier and Type | Method and Description |
|---|---|
void |
addHandler(java.lang.String handlerPath,
ElementHandler handler)
Adds the
ElementHandler to be called when the specified
path is encounted. |
boolean |
containsHandler(java.lang.String handlerPath)
DOCUMENT ME!
|
int |
getActiveHandlerCount()
Returns the number of
ElementHandlerobjects that are waiting for
their elements closing tag. |
ElementHandler |
getHandler(java.lang.String handlerPath)
Get the registered
ElementHandlerfor the specified path. |
java.lang.String |
getPath()
DOCUMENT ME!
|
void |
onEnd(ElementPath elementPath)
Called by an event based processor when an elements closing tag is
encountered.
|
void |
onStart(ElementPath elementPath)
Called by an event based processor when an elements openning tag is
encountered.
|
ElementHandler |
removeHandler(java.lang.String handlerPath)
Removes the
ElementHandler from the event based processor,
for the specified path. |
void |
resetHandlers()
Used to remove all the Element Handlers and return things back to the way
they were when object was created.
|
void |
setDefaultHandler(ElementHandler handler)
When multiple
ElementHandler instances have been
registered, this will set a default ElementHandler to be
called for any path which does NOT have a handler registered. |
private boolean atRoot
private java.lang.String path
private java.util.ArrayList<java.lang.String> pathStack
private java.util.ArrayList<ElementHandler> handlerStack
private java.util.HashMap<java.lang.String,ElementHandler> handlers
HashMap maintains the mapping between element paths and
handlersprivate ElementHandler defaultHandler
ElementHandler to use by default for element paths with no
handlers registeredpublic void addHandler(java.lang.String handlerPath,
ElementHandler handler)
ElementHandler to be called when the specified
path is encounted.handlerPath - is the path to be handledhandler - is the ElementHandler to be called by the event
based processor.public ElementHandler removeHandler(java.lang.String handlerPath)
ElementHandler from the event based processor,
for the specified path.handlerPath - is the path to remove the ElementHandler for.public boolean containsHandler(java.lang.String handlerPath)
handlerPath - DOCUMENT ME!ElementHandler is registered for the
specified path.public ElementHandler getHandler(java.lang.String handlerPath)
ElementHandlerfor the specified path.handlerPath - XML path to get the handler forpublic int getActiveHandlerCount()
ElementHandlerobjects that are waiting for
their elements closing tag.public void setDefaultHandler(ElementHandler handler)
ElementHandler instances have been
registered, this will set a default ElementHandler to be
called for any path which does NOT have a handler registered.handler - is the ElementHandler to be called by the event
based processor.public void resetHandlers()
public java.lang.String getPath()
public void onStart(ElementPath elementPath)
ElementHandleronStart in interface ElementHandlerelementPath - is the current ElementPath to processpublic void onEnd(ElementPath elementPath)
ElementHandleronEnd in interface ElementHandlerelementPath - is the current ElementPath to process