org.apache.commons.jxpath.ri.axes
Class ChildContext

java.lang.Object
  extended byorg.apache.commons.jxpath.ri.EvalContext
      extended byorg.apache.commons.jxpath.ri.axes.ChildContext
All Implemented Interfaces:
ExpressionContext, java.util.Iterator

public class ChildContext
extends EvalContext

EvalContext that can walk the "child::", "following-sibling::" and "preceding-sibling::" axes.

Version:
$Revision: 1.16 $ $Date: 2004/03/25 03:49:50 $
Author:
Dmitri Plotnikov

Field Summary
private  NodeIterator iterator
           
private  NodeTest nodeTest
           
private  boolean reverse
           
private  boolean startFromParentLocation
           
 
Fields inherited from class org.apache.commons.jxpath.ri.EvalContext
parentContext, position, rootContext
 
Constructor Summary
ChildContext(EvalContext parentContext, NodeTest nodeTest, boolean startFromParentLocation, boolean reverse)
           
 
Method Summary
 NodePointer getCurrentNodePointer()
          Returns the current context node.
 Pointer getSingleNodePointer()
          This method is called on the last context on the path when only one value is needed.
 boolean nextNode()
          Returns true if there is another object in the current set.
private  void prepare()
          Allocates a PropertyIterator.
 void reset()
          Sets current position = 0, which is the pre-iteration state.
 boolean setPosition(int position)
          Moves the current position to the specified index.
 
Methods inherited from class org.apache.commons.jxpath.ri.EvalContext
getContextNodeList, getContextNodePointer, getCurrentPosition, getDocumentOrder, getJXPathContext, getNodeSet, getPosition, getRootContext, getValue, hasNext, isChildOrderingRequired, next, nextSet, remove, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

nodeTest

private NodeTest nodeTest

startFromParentLocation

private boolean startFromParentLocation

reverse

private boolean reverse

iterator

private NodeIterator iterator
Constructor Detail

ChildContext

public ChildContext(EvalContext parentContext,
                    NodeTest nodeTest,
                    boolean startFromParentLocation,
                    boolean reverse)
Method Detail

getCurrentNodePointer

public NodePointer getCurrentNodePointer()
Description copied from class: EvalContext
Returns the current context node. Undefined before the beginning of the iteration.

Specified by:
getCurrentNodePointer in class EvalContext

getSingleNodePointer

public Pointer getSingleNodePointer()
This method is called on the last context on the path when only one value is needed. Note that this will return the whole property, even if it is a collection. It will not extract the first element of the collection. For example, "books" will return the collection of books rather than the first book from that collection.

Overrides:
getSingleNodePointer in class EvalContext

nextNode

public boolean nextNode()
Description copied from class: EvalContext
Returns true if there is another object in the current set. Switches the current position and node to the next object.

Specified by:
nextNode in class EvalContext

reset

public void reset()
Description copied from class: EvalContext
Sets current position = 0, which is the pre-iteration state.

Overrides:
reset in class EvalContext

setPosition

public boolean setPosition(int position)
Description copied from class: EvalContext
Moves the current position to the specified index. Used with integer predicates to quickly get to the n'th element of the node set. Returns false if the position is out of the node set range. You can call it with 0 as the position argument to restart the iteration.

Overrides:
setPosition in class EvalContext

prepare

private void prepare()
Allocates a PropertyIterator.