Class EvalContext

    • Constructor Summary

      Constructors 
      Constructor Description
      EvalContext​(EvalContext parentContext)
      Create a new EvalContext.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method 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()  
      • 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 Detail

      • parentContext

        protected EvalContext parentContext
        parent context
      • rootContext

        protected RootContext rootContext
        root context
      • position

        protected int position
        position
      • startedSetIteration

        private boolean startedSetIteration
      • done

        private boolean done
      • hasPerformedIteratorStep

        private boolean hasPerformedIteratorStep
      • pointerIterator

        private java.util.Iterator pointerIterator
    • Constructor Detail

      • EvalContext

        public EvalContext​(EvalContext parentContext)
        Create a new EvalContext.
        Parameters:
        parentContext - parent context
    • Method Detail

      • getDocumentOrder

        public int getDocumentOrder()
        Determines the document order for this context.
        Returns:
        1 ascending order, -1 descending order, 0 - does not require ordering
      • 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.
        Returns:
        boolean
      • hasNext

        public boolean hasNext()
        Returns true if there are mode nodes matching the context's constraints.
        Specified by:
        hasNext in interface java.util.Iterator
        Returns:
        boolean
      • next

        public java.lang.Object next()
        Returns the next node pointer in the context
        Specified by:
        next in interface java.util.Iterator
        Returns:
        Object
      • performIteratorStep

        private void performIteratorStep()
        Moves the iterator forward by one position
      • remove

        public void remove()
        Operation is not supported
        Specified by:
        remove in interface java.util.Iterator
        Throws:
        java.lang.UnsupportedOperationException
      • constructIterator

        private boolean constructIterator()
        Construct an iterator.
        Returns:
        whether the Iterator was constructed
      • sortPointers

        protected void sortPointers​(java.util.List l)
        Sort a list of pointers based on document order.
        Parameters:
        l - the list to sort.
      • getContextNodeList

        public java.util.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
        Returns:
        List
      • 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.
        Returns:
        NodeSet
      • getValue

        public 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. VariableContext
        Returns:
        Object
      • toString

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

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

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

        public int getCurrentPosition()
        Get the current position.
        Returns:
        int position.
      • getSingleNodePointer

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

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

        public boolean nextSet()
        Returns true if there is another sets of objects to interate over. Resets the current position and node.
        Returns:
        boolean
      • 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.
        Returns:
        boolean
      • 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.
        Parameters:
        position - to set
        Returns:
        boolean