Class ChildContext

  • All Implemented Interfaces:
    java.util.Iterator, ExpressionContext

    public class ChildContext
    extends EvalContext
    EvalContext that can walk the "child::", "following-sibling::" and "preceding-sibling::" axes.
    Version:
    $Revision: 652903 $ $Date: 2008-05-02 15:46:32 -0500 (Fri, 02 May 2008) $
    • Field Detail

      • startFromParentLocation

        private boolean startFromParentLocation
      • reverse

        private boolean reverse
    • Constructor Detail

      • ChildContext

        public ChildContext​(EvalContext parentContext,
                            NodeTest nodeTest,
                            boolean startFromParentLocation,
                            boolean reverse)
        Create a new ChildContext.
        Parameters:
        parentContext - parent EvalContext
        nodeTest - NodeTest
        startFromParentLocation - whether to start from parent location
        reverse - whether to iterate in 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
        Returns:
        NodePoiner
      • 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
        Returns:
        Pointer
      • 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
        Returns:
        boolean
      • 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
        Parameters:
        position - to set
        Returns:
        boolean
      • prepare

        private void prepare()
        Allocates a PropertyIterator.