org.apache.commons.jxpath.ri

Class EvalContext

Implemented Interfaces:
ExpressionContext, Iterator
Known Direct Subclasses:
AncestorContext, AttributeContext, ChildContext, DescendantContext, InitialContext, NamespaceContext, NodeSetContext, ParentContext, PrecedingOrFollowingContext, PredicateContext, RootContext, SelfContext

public abstract class EvalContext
extends java.lang.Object
implements ExpressionContext, Iterator

An XPath evaluation context. When evaluating a path, a chain of EvalContexts is created, each context in the chain representing a step of the path. Subclasses of EvalContext implement behavior of various XPath axes: "child::", "parent::" etc.
Version:
$Revision: 1.30 $ $Date: 2004/03/25 05:42:01 $
Author:
Dmitri Plotnikov

Field Summary

protected EvalContext
parentContext
protected int
position
protected RootContext
rootContext

Constructor Summary

EvalContext(EvalContext parentContext)

Method Summary

List
getContextNodeList()
Returns the list of all Pointers in this context for the current position of the parent context.
Pointer
getContextNodePointer()
abstract NodePointer
getCurrentNodePointer()
Returns the current context node.
int
getCurrentPosition()
int
getDocumentOrder()
Determines the document order for this context.
JXPathContext
getJXPathContext()
NodeSet
getNodeSet()
Returns the list of all Pointers in this context for all positions of the parent contexts.
int
getPosition()
RootContext
getRootContext()
Returns the root context of the path, which provides easy access to variables and functions.
Pointer
getSingleNodePointer()
Returns the first encountered Pointer that matches the current context's criteria.
Object
getValue()
Typically returns the NodeSet by calling getNodeSet(), but will be overridden for contexts that more naturally produce individual values, e.g.
boolean
hasNext()
Returns true if there are mode nodes matching the context's constraints.
boolean
isChildOrderingRequired()
Even if this context has the natural ordering and therefore does not require collecting and sorting all nodes prior to returning them, such operation may be required for any child context.
Object
next()
Returns the next node pointer in the context
abstract boolean
nextNode()
Returns true if there is another object in the current set.
boolean
nextSet()
Returns true if there is another sets of objects to interate over.
void
remove()
Operation is not supported
void
reset()
Sets current position = 0, which is the pre-iteration state.
boolean
setPosition(int position)
Moves the current position to the specified index.
String
toString()

Field Details

parentContext

protected EvalContext parentContext

position

protected int position

rootContext

protected RootContext rootContext

Constructor Details

EvalContext

public EvalContext(EvalContext parentContext)

Method Details

getContextNodeList

public List getContextNodeList()
Returns the list of all Pointers in this context for the current position of the parent context.
Specified by:
getContextNodeList in interface ExpressionContext

getContextNodePointer

public Pointer getContextNodePointer()
Specified by:
getContextNodePointer in interface ExpressionContext

getCurrentNodePointer

public abstract NodePointer getCurrentNodePointer()
Returns the current context node. Undefined before the beginning of the iteration.

getCurrentPosition

public int getCurrentPosition()

getDocumentOrder

public int getDocumentOrder()
Determines the document order for this context.
Returns:
1 ascending order, -1 descending order, 0 - does not require ordering

getJXPathContext

public JXPathContext getJXPathContext()
Specified by:
getJXPathContext in interface ExpressionContext

getNodeSet

public NodeSet getNodeSet()
Returns the list of all Pointers in this context for all positions of the parent contexts. If there was an ongoing iteration over this context, the method should not be called.

getPosition

public int getPosition()
Specified by:
getPosition in interface ExpressionContext

getRootContext

public RootContext getRootContext()
Returns the root context of the path, which provides easy access to variables and functions.

getSingleNodePointer

public Pointer getSingleNodePointer()
Returns the first encountered Pointer that matches the current context's criteria.

getValue

public Object getValue()
Typically returns the NodeSet by calling getNodeSet(), but will be overridden for contexts that more naturally produce individual values, e.g. VariableContext

hasNext

public boolean hasNext()
Returns true if there are mode nodes matching the context's constraints.

isChildOrderingRequired

public boolean isChildOrderingRequired()
Even if this context has the natural ordering and therefore does not require collecting and sorting all nodes prior to returning them, such operation may be required for any child context.

next

public Object next()
Returns the next node pointer in the context

nextNode

public abstract boolean nextNode()
Returns true if there is another object in the current set. Switches the current position and node to the next object.

nextSet

public boolean nextSet()
Returns true if there is another sets of objects to interate over. Resets the current position and node.

remove

public void remove()
Operation is not supported

reset

public void reset()
Sets current position = 0, which is the pre-iteration state.

setPosition

public boolean setPosition(int position)
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.

toString

public String toString()