Package org.apache.commons.jxpath.ri
Class EvalContext
java.lang.Object
org.apache.commons.jxpath.ri.EvalContext
- All Implemented Interfaces:
Iterator
,ExpressionContext
- Direct Known Subclasses:
AncestorContext
,AttributeContext
,ChildContext
,DescendantContext
,InitialContext
,NamespaceContext
,NodeSetContext
,ParentContext
,PrecedingOrFollowingContext
,PredicateContext
,RootContext
,SelfContext
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected EvalContext
Parent contextprotected int
Positionprotected RootContext
Root context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the list of all Pointers in this context for the current position of the parent context.Gets the current context node.abstract NodePointer
Returns the current context node.int
Gets the current position.int
Determines the document order for this context.Gets the JXPathContext in which this function is being evaluated.Returns the list of all Pointers in this context for all positions of the parent contexts.int
Returns the current context position.Returns the root context of the path, which provides easy access to variables and functions.Returns the first encountered Pointer that matches the current context's criteria.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
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()
Returns the next node pointer in the contextabstract 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 supportedvoid
reset()
Sets current position = 0, which is the pre-iteration state.boolean
setPosition
(int position) Moves the current position to the specified index.protected void
sortPointers
(List l) Sort a list of pointers based on document order.toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Iterator
forEachRemaining
-
Field Details
-
parentContext
Parent context -
rootContext
Root context -
position
Position
-
-
Constructor Details
-
EvalContext
Constructs a new EvalContext.- Parameters:
parentContext
- parent context
-
-
Method Details
-
getContextNodeList
Returns the list of all Pointers in this context for the current position of the parent context.- Specified by:
getContextNodeList
in interfaceExpressionContext
- Returns:
- List
-
getContextNodePointer
Description copied from interface:ExpressionContext
Gets the current context node.- Specified by:
getContextNodePointer
in interfaceExpressionContext
- Returns:
- The current context node pointer.
-
getCurrentNodePointer
Returns the current context node. Undefined before the beginning of the iteration.- Returns:
- NodePoiner
-
getCurrentPosition
Gets the current position.- Returns:
- int position.
-
getDocumentOrder
Determines the document order for this context.- Returns:
- 1 ascending order, -1 descending order, 0 - does not require ordering
-
getJXPathContext
Description copied from interface:ExpressionContext
Gets the JXPathContext in which this function is being evaluated.- Specified by:
getJXPathContext
in interfaceExpressionContext
- Returns:
- A list representing the current context nodes.
-
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.- Returns:
- NodeSet
-
getPosition
Description copied from interface:ExpressionContext
Returns the current context position.- Specified by:
getPosition
in interfaceExpressionContext
- Returns:
- int
-
getRootContext
Returns the root context of the path, which provides easy access to variables and functions.- Returns:
- RootContext
-
getSingleNodePointer
Returns the first encountered Pointer that matches the current context's criteria.- Returns:
- Pointer
-
getValue
Typically returns the NodeSet by calling getNodeSet(), but will be overridden for contexts that more naturally produce individual values, e.g. VariableContext- Returns:
- Object
-
hasNext
Returns true if there are mode nodes matching the context's constraints. -
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.- Returns:
- boolean
-
next
Returns the next node pointer in the context -
nextNode
Returns true if there is another object in the current set. Switches the current position and node to the next object.- Returns:
- boolean
-
nextSet
Returns true if there is another sets of objects to interate over. Resets the current position and node.- Returns:
- boolean
-
remove
Operation is not supported- Specified by:
remove
in interfaceIterator
- Throws:
UnsupportedOperationException
- Always thrown.
-
reset
Sets current position = 0, which is the pre-iteration state. -
setPosition
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.- Parameters:
position
- to set- Returns:
- boolean
-
sortPointers
Sort a list of pointers based on document order.- Parameters:
l
- the list to sort.
-
toString
-