org.apache.xml.dtm.ref
Class DTMNodeIterator
java.lang.Object
|
+--org.apache.xml.dtm.ref.DTMNodeIterator
- public class DTMNodeIterator
- extends java.lang.Object
- implements org.w3c.dom.traversal.NodeIterator
DTMNodeIterator
gives us an implementation of the
DTMNodeIterator which returns DOM nodes.
Please note that this is not necessarily equivlaent to a DOM
NodeIterator operating over the same document. In particular:
- If there are several Text nodes in logical succession (ie,
across CDATASection and EntityReference boundaries), we will return
only the first; the caller is responsible for stepping through
them.
(%REVIEW% Provide a convenience routine here to assist, pending
proposed DOM Level 3 getAdjacentText() operation?)
- Since the whole XPath/XSLT architecture assumes that the source
document is not altered while we're working with it, we do not
promise to implement the DOM NodeIterator's "maintain current
position" response to document mutation.
- Since our design for XPath NodeIterators builds a stateful
filter directly into the traversal object, getNodeFilter() is not
supported.
State: In progress!!
Constructor Summary |
DTMNodeIterator(DTMIterator dtmIterator)
Public constructor: Wrap a DTMNodeIterator around an existing
and preconfigured DTMIterator |
Method Summary |
void |
detach()
Detaches the NodeIterator from the set which it iterated over,
releasing any computational resources and placing the iterator in
the INVALID state. |
DTMIterator |
getDTMIterator()
Access the wrapped DTMIterator. |
boolean |
getExpandEntityReferences()
The value of this flag determines whether the children
of entity reference nodes are visible to the iterator. |
org.w3c.dom.traversal.NodeFilter |
getFilter()
Return a handle to the filter used to screen nodes. |
org.w3c.dom.Node |
getRoot()
|
int |
getWhatToShow()
Return a mask describing which node types are presented via the
iterator. |
org.w3c.dom.Node |
nextNode()
|
org.w3c.dom.Node |
previousNode()
|
Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
DTMNodeIterator
public DTMNodeIterator(DTMIterator dtmIterator)
- Public constructor: Wrap a DTMNodeIterator around an existing
and preconfigured DTMIterator
getDTMIterator
public DTMIterator getDTMIterator()
- Access the wrapped DTMIterator. I'm not sure whether anyone will
need this or not, but let's write it and think about it.
detach
public void detach()
- Detaches the NodeIterator from the set which it iterated over,
releasing any computational resources and placing the iterator in
the INVALID state.
- Specified by:
- detach in interface org.w3c.dom.traversal.NodeIterator
getExpandEntityReferences
public boolean getExpandEntityReferences()
- The value of this flag determines whether the children
of entity reference nodes are visible to the iterator.
- Specified by:
- getExpandEntityReferences in interface org.w3c.dom.traversal.NodeIterator
- Returns:
- false, always (the DTM model flattens entity references)
getFilter
public org.w3c.dom.traversal.NodeFilter getFilter()
- Return a handle to the filter used to screen nodes.
This is ill-defined in Xalan's usage of Nodeiterator, where we have
built stateful XPath-based filtering directly into the traversal
object. We could return something which supports the NodeFilter interface
and allows querying whether a given node would be permitted if it appeared
as our next node, but in the current implementation that would be very
complex -- and just isn't all that useful.
- Specified by:
- getFilter in interface org.w3c.dom.traversal.NodeIterator
- Throws:
- org.w3c.dom.DOMException - -- NOT_SUPPORTED_ERROR because I can't think
of anything more useful to do in this case
getRoot
public org.w3c.dom.Node getRoot()
- Specified by:
- getRoot in interface org.w3c.dom.traversal.NodeIterator
- Returns:
- The root node of the NodeIterator, as specified
when it was created.
getWhatToShow
public int getWhatToShow()
- Return a mask describing which node types are presented via the
iterator.
- Specified by:
- getWhatToShow in interface org.w3c.dom.traversal.NodeIterator
nextNode
public org.w3c.dom.Node nextNode()
throws org.w3c.dom.DOMException
- Specified by:
- nextNode in interface org.w3c.dom.traversal.NodeIterator
- Returns:
- the next node in the set and advance the position of the
iterator in the set.
previousNode
public org.w3c.dom.Node previousNode()
- Specified by:
- previousNode in interface org.w3c.dom.traversal.NodeIterator
- Returns:
- the next previous in the set and advance the position of the
iterator in the set.
Copyright © 2001 Apache XML Project. All Rights Reserved.