org.apache.xpath.axes

## Class OneStepIterator

- java.lang.Object
- - org.apache.xpath.Expression
  - - org.apache.xpath.patterns.NodeTest
    - - org.apache.xpath.axes.PredicatedNodeTest
      - - org.apache.xpath.axes.LocPathIterator
        - - org.apache.xpath.axes.BasicTestIterator
          - - org.apache.xpath.axes.ChildTestIterator
            - - org.apache.xpath.axes.OneStepIterator

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, javax.xml.transform.SourceLocator, DTMIterator, PathComponent, SubContextList, ExpressionNode, XPathVisitable

      public class OneStepIterator
      extends ChildTestIterator

  This class implements a general iterator for those LocationSteps with only one step, and perhaps a predicate.
  See Also:
    `org.apache.xpath.axes`, Serialized Form
  Usage:
    **For advanced use only**

- - ### Field Summary

    - ### Fields inherited from class org.apache.xpath.axes.LocPathIterator

      `m_lastFetched`

    - ### Fields inherited from class org.apache.xpath.patterns.NodeTest

      `SCORE_NODETEST, SCORE_NONE, SCORE_NSWILD, SCORE_OTHER, SCORE_QNAME, SHOW_BYFUNCTION, SUPPORTS_PRE_STRIPPING, WILD`

    - ### Fields inherited from interface org.apache.xml.dtm.DTMIterator

      `FILTER_ACCEPT, FILTER_REJECT, FILTER_SKIP`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OneStepIterator(DTMAxisIterator iterator, int axis)` Create a OneStepIterator object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Get a cloned iterator.
    `DTMIterator` | `cloneWithReset()` Get a cloned Iterator that is reset to the beginning of the query.
    `boolean` | `deepEquals(Expression expr)` Compare this object with another object and see if they are equal, include the sub heararchy.
    `void` | `detach()` Detaches the iterator from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.
    `int` | `getAxis()` Returns the axis being iterated, if it is known.
    `int` | `getLength()` The number of nodes in the list.
    `boolean` | `isReverseAxes()` Tells if this is a reverse axes.
    `void` | `reset()` Reset the iterator.
    `void` | `setRoot(int context, java.lang.Object environment)` Initialize the context values for this expression after it is cloned.

    - ### Methods inherited from class org.apache.xpath.axes.BasicTestIterator

      `nextNode`

    - ### Methods inherited from class org.apache.xpath.axes.LocPathIterator

      `allowDetachToRelease, asIterator, asNode, bool, callVisitors, execute, executeCharsToContentHandler, getAnalysisBits, getContext, getCurrentContextNode, getCurrentNode, getCurrentPos, getDTM, getDTMManager, getExpandEntityReferences, getFilter, getFoundLast, getIsTopLevel, getLastPos, getPrefixResolver, getRoot, getWhatToShow, getXPathContext, incrementCurrentPos, isDocOrdered, isFresh, isMutable, isNodesetExpr, item, previousNode, runTo, setCurrentContextNode, setCurrentPos, setEnvironment, setIsTopLevel, setItem, setShouldCacheNodes, size`

    - ### Methods inherited from class org.apache.xpath.axes.PredicatedNodeTest

      `acceptNode, callPredicateVisitors, canTraverseOutsideSubtree, fixupVariables, getLocPathIterator, getPredicate, getPredicateCount, getPredicateIndex, getProximityPosition, getProximityPosition, initProximityPosition, resetProximityPositions, setLocPathIterator, setPredicateCount`

    - ### Methods inherited from class org.apache.xpath.patterns.NodeTest

      `debugWhatToShow, execute, execute, getDefaultScore, getLocalName, getNamespace, getNodeTypeTest, getStaticScore, initNodeTest, initNodeTest, setLocalName, setNamespace, setStaticScore, setWhatToShow`

    - ### Methods inherited from class org.apache.xpath.Expression

      `asIteratorRaw, assertion, error, execute, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isStableNumber, num, warn, xstr`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### OneStepIterator

          public OneStepIterator(DTMAxisIterator iterator,
                                 int axis)
                          throws javax.xml.transform.TransformerException

      Create a OneStepIterator object.
      Parameters:
        `iterator` - The DTM iterator which this iterator will use.
        `axis` - One of Axis.Child, etc., or -1 if the axis is unknown.
      Throws:
        `javax.xml.transform.TransformerException`

  - ### Method Detail

    - #### setRoot

          public void setRoot(int context,
                              java.lang.Object environment)

      Initialize the context values for this expression after it is cloned.
      Specified by:
        `setRoot` in interface `DTMIterator`
      Overrides:
        `setRoot` in class `ChildTestIterator`
      Parameters:
        `context` - The XPath runtime context for this transformation.
        `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 iterator 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 the exception INVALID_STATE_ERR.
      Specified by:
        `detach` in interface `DTMIterator`
      Overrides:
        `detach` in class `ChildTestIterator`

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Get a cloned iterator.
      Specified by:
        `clone` in interface `DTMIterator`
      Overrides:
        `clone` in class `PredicatedNodeTest`
      Returns:
        A new iterator that can be used without mutating this one.
      Throws:
        `java.lang.CloneNotSupportedException`

    - #### cloneWithReset

          public DTMIterator cloneWithReset()
                                     throws java.lang.CloneNotSupportedException

      Get a cloned Iterator that is reset to the beginning of the query.
      Specified by:
        `cloneWithReset` in interface `DTMIterator`
      Overrides:
        `cloneWithReset` in class `ChildTestIterator`
      Returns:
        A cloned NodeIterator set of the start of the query.
      Throws:
        `java.lang.CloneNotSupportedException`

    - #### isReverseAxes

          public boolean isReverseAxes()

      Tells if this is a reverse axes. Overrides AxesWalker#isReverseAxes.
      Overrides:
        `isReverseAxes` in class `PredicatedNodeTest`
      Returns:
        true for this class.

    - #### getLength

          public int getLength()

      The number of nodes in the list. The range of valid child node indices is 0 to `length-1` inclusive.
      Specified by:
        `getLength` in interface `DTMIterator`
      Overrides:
        `getLength` in class `LocPathIterator`
      Returns:
        The number of nodes in the list, always greater or equal to zero.

    - #### reset

          public void reset()

      Reset the iterator.
      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)

      Description copied from class: `Expression`
      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.
      See Also:
        `Expression.deepEquals(Expression)`

Copyright © 2023 Apache XML Project. All Rights Reserved.