org.apache.xpath.axes
Class AxesWalker

java.lang.Object
  |
  +--org.apache.xpath.Expression
        |
        +--org.apache.xpath.patterns.NodeTest
              |
              +--org.apache.xpath.axes.AxesWalker
Direct Known Subclasses:
AttributeWalker, AttributeWalkerOneStep, ChildWalker, ChildWalkerMultiStep, ChildWalkerOneStep, DescendantWalker, FilterExprWalker, FollowingSiblingWalker, FollowingWalker, NamespaceWalker, ParentWalker, ReverseAxesWalker, RootWalker, SelfWalker, SelfWalkerOneStep

public abstract class AxesWalker
extends NodeTest
implements java.lang.Cloneable, TreeWalker, NodeFilter, SubContextList

Serves as common interface for axes Walkers, and stores common state variables.


Fields inherited from class org.apache.xpath.patterns.NodeTest
SCORE_NONE, SHOW_BYFUNCTION, SHOW_NAMESPACE, WILD
 
Constructor Summary
AxesWalker(LocPathIterator locPathIterator)
          Construct an AxesWalker using a LocPathIterator.
 
Method Summary
 short acceptNode(Node n)
          Test whether a specified node is visible in the logical view of a TreeWalker or NodeIterator.
 java.lang.Object clone()
          Get a cloned AxesWalker.
 Node firstChild()
          Moves the TreeWalker to the first visible child of the current node, and returns the new node.
 Node getCurrentNode()
          The node at which the TreeWalker is currently positioned.
 boolean getExpandEntityReferences()
          The value of this flag determines whether the children of entity reference nodes are visible to the TreeWalker.
 NodeFilter getFilter()
          The filter used to screen nodes.
 int getLastPos(XPathContext xctxt)
           
 LocPathIterator getLocPathIterator()
           
 AxesWalker getNextWalker()
           
 int getPredicateCount()
          Get the number of predicates that this walker has.
 int getPredicateIndex()
          Get which predicate is executing.
 AxesWalker getPrevWalker()
           
 int getProximityPosition()
          Get the current sub-context position.
 int getProximityPosition(XPathContext xctxt)
          Get the current sub-context position.
 Node getRoot()
          The root node of the TreeWalker, as specified in setRoot(Node root).
 void init(Compiler compiler, int opPos, int stepType)
          Init an AxesWalker.
 void initProximityPosition(int i)
          Init the proximity position to zero for a forward axes.
 boolean isReverseAxes()
          Tells if this is a reverse axes.
 Node lastChild()
          Moves the TreeWalker to the last visible child of the current node, and returns the new node.
 Node nextNode()
          Moves the TreeWalker to the next visible node in document order relative to the current node, and returns the new node.
 Node nextSibling()
          Moves the TreeWalker to the next sibling of the current node, and returns the new node.
 Node parentNode()
          Moves to and returns the closest visible ancestor node of the current node.
 Node previousNode()
          Moves the TreeWalker to the previous visible node in document order relative to the current node, and returns the new node.
 Node previousSibling()
          Moves the TreeWalker to the previous sibling of the current node, and returns the new node.
 void reset()
          Reset the Walker.
 void resetProximityPositions()
          Reset the proximity positions counts.
 void setCurrentNode(Node currentNode)
          Set the current node.
 void setLocPathIterator(LocPathIterator li)
           
 void setNextWalker(AxesWalker walker)
           
 void setPredicateCount(int count)
          Set the number of predicates that this walker has.
 void setPrevWalker(AxesWalker walker)
           
 void setRoot(Node root)
          Set the root node of the TreeWalker.
 java.lang.String toString()
          Diagnostics.
 
Methods inherited from class org.apache.xpath.patterns.NodeTest
debugWhatToShow, execute, getDefaultScore, getLocalName, getNamespace, getWhatToShow, initNodeTest, initNodeTest
 
Methods inherited from class org.apache.xpath.Expression
assert, error, warn
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AxesWalker

public AxesWalker(LocPathIterator locPathIterator)
Construct an AxesWalker using a LocPathIterator.
Method Detail

getLocPathIterator

public LocPathIterator getLocPathIterator()

setLocPathIterator

public void setLocPathIterator(LocPathIterator li)

init

public void init(Compiler compiler,
                 int opPos,
                 int stepType)
          throws SAXException
Init an AxesWalker.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Get a cloned AxesWalker.

reset

public void reset()
Reset the Walker.

getProximityPosition

public int getProximityPosition()
Get the current sub-context position.

getProximityPosition

public int getProximityPosition(XPathContext xctxt)
Get the current sub-context position.
Specified by:
getProximityPosition in interface SubContextList

resetProximityPositions

public void resetProximityPositions()
                             throws SAXException
Reset the proximity positions counts.

initProximityPosition

public void initProximityPosition(int i)
                           throws SAXException
Init the proximity position to zero for a forward axes.

isReverseAxes

public boolean isReverseAxes()
Tells if this is a reverse axes.

getPredicateIndex

public int getPredicateIndex()
Get which predicate is executing. Returns -1 if no predicate is executing.

getPredicateCount

public int getPredicateCount()
Get the number of predicates that this walker has.

setPredicateCount

public void setPredicateCount(int count)
Set the number of predicates that this walker has.

getRoot

public Node getRoot()
The root node of the TreeWalker, as specified in setRoot(Node root). Note that this may actually be below the current node.
Specified by:
getRoot in interface TreeWalker

setRoot

public void setRoot(Node root)
Set the root node of the TreeWalker. (Not part of the DOM2 TreeWalker interface).

getCurrentNode

public final Node getCurrentNode()
The node at which the TreeWalker is currently positioned.
The value must not be null. Alterations to the DOM tree may cause the current node to no longer be accepted by the TreeWalker's associated filter. currentNode may also be explicitly set to any node, whether or not it is within the subtree specified by the root node or would be accepted by the filter and whatToShow flags. Further traversal occurs relative to currentNode even if it is not part of the current view by applying the filters in the requested direction (not changing currentNode where no traversal is possible).
Specified by:
getCurrentNode in interface TreeWalker
Throws:
DOMException - NOT_SUPPORTED_ERR: Raised if the specified currentNode isnull .

setCurrentNode

public void setCurrentNode(Node currentNode)
                    throws DOMException
Set the current node.
Specified by:
setCurrentNode in interface TreeWalker

getFilter

public NodeFilter getFilter()
The filter used to screen nodes.
Specified by:
getFilter in interface TreeWalker

getExpandEntityReferences

public boolean getExpandEntityReferences()
The value of this flag determines whether the children of entity reference nodes are visible to the TreeWalker. If false, they will be skipped over.
To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the TreeWalker. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false.
Specified by:
getExpandEntityReferences in interface TreeWalker

parentNode

public Node parentNode()
Moves to and returns the closest visible ancestor node of the current node. If the search for parentNode attempts to step upward from the TreeWalker's root node, or if it fails to find a visible ancestor node, this method retains the current position and returns null.
Specified by:
parentNode in interface TreeWalker
Returns:
The new parent node, or null if the current node has no parent in the TreeWalker's logical view.

firstChild

public Node firstChild()
Moves the TreeWalker to the first visible child of the current node, and returns the new node. If the current node has no visible children, returns null , and retains the current node.
Specified by:
firstChild in interface TreeWalker
Returns:
The new node, or null if the current node has no visible children in the TreeWalker's logical view.

nextSibling

public Node nextSibling()
Moves the TreeWalker to the next sibling of the current node, and returns the new node. If the current node has no visible next sibling, returns null , and retains the current node.
Specified by:
nextSibling in interface TreeWalker
Returns:
The new node, or null if the current node has no next sibling in the TreeWalker's logical view.

lastChild

public Node lastChild()
Moves the TreeWalker to the last visible child of the current node, and returns the new node. If the current node has no visible children, returns null , and retains the current node.
Specified by:
lastChild in interface TreeWalker
Returns:
The new node, or null if the current node has no children in the TreeWalker's logical view.

previousSibling

public Node previousSibling()
Moves the TreeWalker to the previous sibling of the current node, and returns the new node. If the current node has no visible previous sibling, returns null , and retains the current node.
Specified by:
previousSibling in interface TreeWalker
Returns:
The new node, or null if the current node has no previous sibling in the TreeWalker's logical view.

previousNode

public Node previousNode()
Moves the TreeWalker to the previous visible node in document order relative to the current node, and returns the new node. If the current node has no previous node, or if the search for previousNode attempts to step upward from the TreeWalker's root node, returns null , and retains the current node.
Specified by:
previousNode in interface TreeWalker
Returns:
The new node, or null if the current node has no previous node in the TreeWalker's logical view.

setNextWalker

public void setNextWalker(AxesWalker walker)

getNextWalker

public AxesWalker getNextWalker()

setPrevWalker

public void setPrevWalker(AxesWalker walker)

getPrevWalker

public AxesWalker getPrevWalker()

toString

public java.lang.String toString()
Diagnostics.
Overrides:
toString in class java.lang.Object

nextNode

public Node nextNode()
Moves the TreeWalker to the next visible node in document order relative to the current node, and returns the new node. If the current node has no next node, or if the search for nextNode attempts to step upward from the TreeWalker's root node, returns null , and retains the current node.
Specified by:
nextNode in interface TreeWalker
Returns:
The new node, or null if the current node has no next node in the TreeWalker's logical view.

getLastPos

public int getLastPos(XPathContext xctxt)
Specified by:
getLastPos in interface SubContextList

acceptNode

public short acceptNode(Node n)
Test whether a specified node is visible in the logical view of a TreeWalker or NodeIterator. This function will be called by the implementation of TreeWalker and NodeIterator; it is not intended to be called directly from user code.
Specified by:
acceptNode in interface NodeFilter
Parameters:
n - The node to check to see if it passes the filter or not.
Returns:
a constant to determine whether the node is accepted, rejected, or skipped, as defined above .


Copyright © 2000 Apache XML Project. All Rights Reserved.