class DispatchHandler extends 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 HashMap |
handlers
HashMap maintains the mapping between element paths and handlers |
private ArrayList |
handlerStack
maintains a stack of previously encountered handlers
|
private String |
path
The current path in the XML tree (i.e.
|
private ArrayList |
pathStack
maintains a stack of previously encountered paths
|
Constructor and Description |
---|
DispatchHandler() |
Modifier and Type | Method and Description |
---|---|
void |
addHandler(String path,
ElementHandler handler)
Adds the
ElementHandler to be called when the
specified path is encounted. |
String |
getPath() |
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(String path)
Removes the
ElementHandler from the event based
processor, for the specified path. |
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 ArrayList handlerStack
private ElementHandler defaultHandler
ElementHandler
to use by default for element paths with no handlers registeredpublic DispatchHandler()
public void addHandler(String path, ElementHandler handler)
ElementHandler
to be called when the
specified path is encounted.path
- is the path to be handledhandler
- is the ElementHandler
to be called
by the event based processor.public ElementHandler removeHandler(String path)
ElementHandler
from the event based
processor, for the specified path.path
- is the path to remove the ElementHandler
for.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 onStart(ElementPath elementPath)
ElementHandler
onStart
in interface ElementHandler
elementPath
- is the current ElementPath
to processpublic void onEnd(ElementPath elementPath)
ElementHandler
onEnd
in interface ElementHandler
elementPath
- is the current ElementPath
to processWebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses