Package org.dom4j.io
Class ElementStack
- java.lang.Object
-
- org.dom4j.io.ElementStack
-
- All Implemented Interfaces:
ElementPath
- Direct Known Subclasses:
PruningElementStack
class ElementStack extends java.lang.Object implements ElementPath
ElementStack
is used internally inside theSAXContentHandler
to maintain a stack ofElement
instances. It opens an integration possibility allowing derivations to prune the tree when a node is complete.- Version:
- $Revision: 1.14 $
-
-
Field Summary
Fields Modifier and Type Field Description private DispatchHandler
handler
protected int
lastElementIndex
index of the item at the top of the stack or -1 if the stack is emptyprotected Element[]
stack
stack ofElement
objects
-
Constructor Summary
Constructors Constructor Description ElementStack()
ElementStack(int defaultCapacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHandler(java.lang.String path, ElementHandler elementHandler)
Adds theElementHandler
to be called when the specified path is encounted.void
clear()
Peeks at the top element on the stack without changing the contents of the stack.boolean
containsHandler(java.lang.String path)
DOCUMENT ME!Element
getCurrent()
DOCUMENT ME!DispatchHandler
getDispatchHandler()
Element
getElement(int depth)
DOCUMENT ME!private java.lang.String
getHandlerPath(java.lang.String path)
java.lang.String
getPath()
DOCUMENT ME!Element
peekElement()
Peeks at the top element on the stack without changing the contents of the stack.Element
popElement()
Pops the element off the stackvoid
pushElement(Element element)
Pushes a new element onto the stackprotected void
reallocate(int size)
Reallocates the stack to the given sizevoid
removeHandler(java.lang.String path)
Removes theElementHandler
from the event based processor, for the specified path.void
setDispatchHandler(DispatchHandler dispatchHandler)
int
size()
DOCUMENT ME!
-
-
-
Field Detail
-
stack
protected Element[] stack
stack ofElement
objects
-
lastElementIndex
protected int lastElementIndex
index of the item at the top of the stack or -1 if the stack is empty
-
handler
private DispatchHandler handler
-
-
Method Detail
-
setDispatchHandler
public void setDispatchHandler(DispatchHandler dispatchHandler)
-
getDispatchHandler
public DispatchHandler getDispatchHandler()
-
clear
public void clear()
Peeks at the top element on the stack without changing the contents of the stack.
-
peekElement
public Element peekElement()
Peeks at the top element on the stack without changing the contents of the stack.- Returns:
- the current element on the stack
-
popElement
public Element popElement()
Pops the element off the stack- Returns:
- the element that has just been popped off the stack
-
pushElement
public void pushElement(Element element)
Pushes a new element onto the stack- Parameters:
element
- DOCUMENT ME!
-
reallocate
protected void reallocate(int size)
Reallocates the stack to the given size- Parameters:
size
- DOCUMENT ME!
-
size
public int size()
Description copied from interface:ElementPath
DOCUMENT ME!- Specified by:
size
in interfaceElementPath
- Returns:
- the number of elements in the path
-
getElement
public Element getElement(int depth)
Description copied from interface:ElementPath
DOCUMENT ME!- Specified by:
getElement
in interfaceElementPath
- Parameters:
depth
- DOCUMENT ME!- Returns:
- the element at the specified depth index, 0 = root element
-
getPath
public java.lang.String getPath()
Description copied from interface:ElementPath
DOCUMENT ME!- Specified by:
getPath
in interfaceElementPath
- Returns:
- the path as a string
-
getCurrent
public Element getCurrent()
Description copied from interface:ElementPath
DOCUMENT ME!- Specified by:
getCurrent
in interfaceElementPath
- Returns:
- the current element
-
addHandler
public void addHandler(java.lang.String path, ElementHandler elementHandler)
Description copied from interface:ElementPath
Adds theElementHandler
to be called when the specified path is encounted. The path can be either an absolute path (i.e. prefixed with "/") or a relative path (i.e. assummed to be a child of the current path as retrieved by getPath .- Specified by:
addHandler
in interfaceElementPath
- Parameters:
path
- is the path to be handledelementHandler
- is theElementHandler
to be called by the event based processor.
-
removeHandler
public void removeHandler(java.lang.String path)
Description copied from interface:ElementPath
Removes theElementHandler
from the event based processor, for the specified path. The path can be either an absolute path (i.e. prefixed with "/") or a relative path (i.e. assummed to be a child of the current path as retrieved by getPath .- Specified by:
removeHandler
in interfaceElementPath
- Parameters:
path
- is the path to remove theElementHandler
for.
-
containsHandler
public boolean containsHandler(java.lang.String path)
DOCUMENT ME!- Parameters:
path
- DOCUMENT ME!- Returns:
- true when an
ElementHandler
is registered for the specified path.
-
getHandlerPath
private java.lang.String getHandlerPath(java.lang.String path)
-
-