Package org.dom4j.io
Class DispatchHandler
- java.lang.Object
-
- org.dom4j.io.DispatchHandler
-
- All Implemented Interfaces:
ElementHandler
- Direct Known Subclasses:
PruningDispatchHandler
class DispatchHandler extends java.lang.Object implements ElementHandler
DispatchHandler
implements theElementHandler
interface and provides a means to register multipleElementHandler
instances to be used by an event based processor. This is a specialElementHandler
in that it's onStart and onEnd implementation methods are called for every element encountered during the parse. It then delegates to otherElementHandler
instances registered with it to process the elements encountered.- Version:
- $Revision: 1.11 $
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
atRoot
Whether the parser is at the root element or notprivate ElementHandler
defaultHandler
ElementHandler
to use by default for element paths with no handlers registeredprivate java.util.HashMap<java.lang.String,ElementHandler>
handlers
HashMap
maintains the mapping between element paths and handlersprivate java.util.ArrayList<ElementHandler>
handlerStack
maintains a stack of previously encountered handlersprivate 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 Summary
Constructors Constructor Description DispatchHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHandler(java.lang.String handlerPath, ElementHandler handler)
Adds theElementHandler
to be called when the specified path is encounted.boolean
containsHandler(java.lang.String handlerPath)
DOCUMENT ME!int
getActiveHandlerCount()
Returns the number ofElementHandler
objects that are waiting for their elements closing tag.ElementHandler
getHandler(java.lang.String handlerPath)
Get the registeredElementHandler
for 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 theElementHandler
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 multipleElementHandler
instances have been registered, this will set a defaultElementHandler
to be called for any path which does NOT have a handler registered.
-
-
-
Field Detail
-
atRoot
private boolean atRoot
Whether the parser is at the root element or not
-
path
private java.lang.String path
The current path in the XML tree (i.e. /a/b/c)
-
pathStack
private java.util.ArrayList<java.lang.String> pathStack
maintains a stack of previously encountered paths
-
handlerStack
private java.util.ArrayList<ElementHandler> handlerStack
maintains a stack of previously encountered handlers
-
handlers
private java.util.HashMap<java.lang.String,ElementHandler> handlers
HashMap
maintains the mapping between element paths and handlers
-
defaultHandler
private ElementHandler defaultHandler
ElementHandler
to use by default for element paths with no handlers registered
-
-
Method Detail
-
addHandler
public void addHandler(java.lang.String handlerPath, ElementHandler handler)
Adds theElementHandler
to be called when the specified path is encounted.- Parameters:
handlerPath
- is the path to be handledhandler
- is theElementHandler
to be called by the event based processor.
-
removeHandler
public ElementHandler removeHandler(java.lang.String handlerPath)
Removes theElementHandler
from the event based processor, for the specified path.- Parameters:
handlerPath
- is the path to remove theElementHandler
for.- Returns:
- DOCUMENT ME!
-
containsHandler
public boolean containsHandler(java.lang.String handlerPath)
DOCUMENT ME!- Parameters:
handlerPath
- DOCUMENT ME!- Returns:
- true when an
ElementHandler
is registered for the specified path.
-
getHandler
public ElementHandler getHandler(java.lang.String handlerPath)
Get the registeredElementHandler
for the specified path.- Parameters:
handlerPath
- XML path to get the handler for- Returns:
- the registered handler
-
getActiveHandlerCount
public int getActiveHandlerCount()
Returns the number ofElementHandler
objects that are waiting for their elements closing tag.- Returns:
- number of active handlers
-
setDefaultHandler
public void setDefaultHandler(ElementHandler handler)
When multipleElementHandler
instances have been registered, this will set a defaultElementHandler
to be called for any path which does NOT have a handler registered.- Parameters:
handler
- is theElementHandler
to be called by the event based processor.
-
resetHandlers
public void resetHandlers()
Used to remove all the Element Handlers and return things back to the way they were when object was created.
-
getPath
public java.lang.String getPath()
DOCUMENT ME!- Returns:
- the current path for the parse
-
onStart
public void onStart(ElementPath elementPath)
Description copied from interface:ElementHandler
Called by an event based processor when an elements openning tag is encountered.- Specified by:
onStart
in interfaceElementHandler
- Parameters:
elementPath
- is the currentElementPath
to process
-
onEnd
public void onEnd(ElementPath elementPath)
Description copied from interface:ElementHandler
Called by an event based processor when an elements closing tag is encountered.- Specified by:
onEnd
in interfaceElementHandler
- Parameters:
elementPath
- is the currentElementPath
to process
-
-