public abstract class EvalContext extends java.lang.Object implements ExpressionContext, java.util.Iterator
Modifier and Type | Field and Description |
---|---|
private boolean |
done |
private boolean |
hasPerformedIteratorStep |
protected EvalContext |
parentContext
parent context
|
private java.util.Iterator |
pointerIterator |
protected int |
position
position
|
protected RootContext |
rootContext
root context
|
private boolean |
startedSetIteration |
Constructor and Description |
---|
EvalContext(EvalContext parentContext)
Create a new EvalContext.
|
Modifier and Type | Method and Description |
---|---|
private boolean |
constructIterator()
Construct an iterator.
|
java.util.List |
getContextNodeList()
Returns the list of all Pointers in this context for the current
position of the parent context.
|
Pointer |
getContextNodePointer()
Get the current context node.
|
abstract NodePointer |
getCurrentNodePointer()
Returns the current context node.
|
int |
getCurrentPosition()
Get the current position.
|
int |
getDocumentOrder()
Determines the document order for this context.
|
JXPathContext |
getJXPathContext()
Get the JXPathContext in which this function is being evaluated.
|
NodeSet |
getNodeSet()
Returns the list of all Pointers in this context for all positions
of the parent contexts.
|
int |
getPosition()
Returns the current context position.
|
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.
|
java.lang.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.
|
java.lang.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.
|
private void |
performIteratorStep()
Moves the iterator forward by one position
|
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.
|
protected void |
sortPointers(java.util.List l)
Sort a list of pointers based on document order.
|
java.lang.String |
toString() |
protected EvalContext parentContext
protected RootContext rootContext
protected int position
private boolean startedSetIteration
private boolean done
private boolean hasPerformedIteratorStep
private java.util.Iterator pointerIterator
public EvalContext(EvalContext parentContext)
parentContext
- parent contextpublic Pointer getContextNodePointer()
ExpressionContext
getContextNodePointer
in interface ExpressionContext
public JXPathContext getJXPathContext()
ExpressionContext
getJXPathContext
in interface ExpressionContext
public int getPosition()
ExpressionContext
getPosition
in interface ExpressionContext
public int getDocumentOrder()
public boolean isChildOrderingRequired()
public boolean hasNext()
hasNext
in interface java.util.Iterator
public java.lang.Object next()
next
in interface java.util.Iterator
private void performIteratorStep()
public void remove()
remove
in interface java.util.Iterator
java.lang.UnsupportedOperationException
private boolean constructIterator()
protected void sortPointers(java.util.List l)
l
- the list to sort.public java.util.List getContextNodeList()
getContextNodeList
in interface ExpressionContext
public NodeSet getNodeSet()
public java.lang.Object getValue()
public java.lang.String toString()
toString
in class java.lang.Object
public RootContext getRootContext()
public void reset()
public int getCurrentPosition()
public Pointer getSingleNodePointer()
public abstract NodePointer getCurrentNodePointer()
public boolean nextSet()
public abstract boolean nextNode()
public boolean setPosition(int position)
position
- to set