Class OneStepIterator

    • Field Detail

      • m_axis

        protected int m_axis
        The traversal axis from where the nodes will be filtered.
      • m_iterator

        protected DTMAxisIterator m_iterator
        The DTM inner traversal class, that corresponds to the super axis.
    • Constructor Detail

      • OneStepIterator

        OneStepIterator​(Compiler compiler,
                        int opPos,
                        int analysis)
                 throws javax.xml.transform.TransformerException
        Create a OneStepIterator object.
        Parameters:
        compiler - A reference to the Compiler that contains the op map.
        opPos - The position within the op map, which contains the location path expression for this itterator.
        Throws:
        javax.xml.transform.TransformerException - if any
    • Method Detail

      • setRoot

        public void setRoot​(int context,
                            java.lang.Object environment)
        Reset the root node of the DTMIterator, overriding the value specified when it was created. Note the root node is not the root node of the document tree, but the context node from where the iteration begins.
        Specified by:
        setRoot in interface DTMIterator
        Overrides:
        setRoot in class ChildTestIterator
        Parameters:
        context - int Handle of the context node.
        environment - The environment object. The environment in which this iterator operates, which should provide:
        • a node (the context node... same value as "root" defined below)
        • a pair of non-zero positive integers (the context position and the context size)
        • a set of variable bindings
        • a function library
        • the set of namespace declarations in scope for the expression.

            At this time the exact implementation of this environment is application dependent. Probably a proper interface will be created fairly soon.

      • detach

        public void detach()
        Detaches the DTMIterator from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state. After detach has been invoked, calls to nextNode or previousNode will raise a runtime exception.
        Specified by:
        detach in interface DTMIterator
        Overrides:
        detach in class ChildTestIterator
      • getNextNode

        protected int getNextNode()
        Get the next node via getNextXXX. Bottlenecked for derived class override.
        Overrides:
        getNextNode in class ChildTestIterator
        Returns:
        The next node on the axis, or DTM.NULL.
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Specified by:
        clone in interface DTMIterator
        Overrides:
        clone in class PredicatedNodeTest
        Returns:
        A clone of this object.
        Throws:
        java.lang.CloneNotSupportedException - if any
      • cloneWithReset

        public DTMIterator cloneWithReset()
                                   throws java.lang.CloneNotSupportedException
        Get a cloned Iterator that is reset to the start of the iteration.
        Specified by:
        cloneWithReset in interface DTMIterator
        Overrides:
        cloneWithReset in class ChildTestIterator
        Returns:
        A clone of this iteration that has been reset.
        Throws:
        java.lang.CloneNotSupportedException - if any
      • isReverseAxes

        public boolean isReverseAxes()
        Tells if this is a reverse axes.
        Overrides:
        isReverseAxes in class PredicatedNodeTest
        Returns:
        false, unless a derived class overrides.
      • getProximityPosition

        protected int getProximityPosition​(int predicateIndex)
        Get the current sub-context position.
        Overrides:
        getProximityPosition in class PredicatedNodeTest
        Parameters:
        predicateIndex - The index of the predicate where the proximity should be taken from.
        Returns:
        The node position of this walker in the sub-context node list.
      • getLength

        public int getLength()
        The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive. Note that this requires running the iterator to completion, and presumably filling the cache.
        Specified by:
        getLength in interface DTMIterator
        Overrides:
        getLength in class LocPathIterator
        Returns:
        The number of nodes in the list.
      • countProximityPosition

        protected void countProximityPosition​(int i)
        Count forward one proximity position.
        Overrides:
        countProximityPosition in class PredicatedNodeTest
        Parameters:
        i - The index into the m_proximityPositions array, where the increment will occur.
      • reset

        public void reset()
        Reset the iterator to the start. After resetting, the next node returned will be the root node -- or, if that's filtered out, the first node within the root's subtree which is _not_ skipped by the filters.
        Specified by:
        reset in interface DTMIterator
        Overrides:
        reset in class LocPathIterator
      • getAxis

        public int getAxis()
        Returns the axis being iterated, if it is known.
        Specified by:
        getAxis in interface DTMIterator
        Overrides:
        getAxis in class ChildTestIterator
        Returns:
        Axis.CHILD, etc., or -1 if the axis is not known or is of multiple types.
      • deepEquals

        public boolean deepEquals​(Expression expr)
        Compare this object with another object and see if they are equal, include the sub heararchy.
        Overrides:
        deepEquals in class PredicatedNodeTest
        Parameters:
        expr - Another expression object.
        Returns:
        true if this objects class and the expr object's class are the same, and the data contained within both objects are considered equal.