/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the  "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
 * $Id: DTMAxisIterator.java 468653 2006-10-28 07:07:05Z minchau $
 */
package org.apache.xml.dtm;

This class iterates over a single XPath Axis, and returns node handles.
/** * This class iterates over a single XPath Axis, and returns node handles. */
public interface DTMAxisIterator extends Cloneable {
Specifies the end of the iteration, and is the same as DTM.NULL.
/** Specifies the end of the iteration, and is the same as DTM.NULL. */
public static final int END = DTM.NULL;
Get the next node in the iteration.
Returns:The next node handle in the iteration, or END.
/** * Get the next node in the iteration. * * @return The next node handle in the iteration, or END. */
public int next();
Resets the iterator to the last start node.
Returns:A DTMAxisIterator, which may or may not be the same as this iterator.
/** * Resets the iterator to the last start node. * * @return A DTMAxisIterator, which may or may not be the same as this * iterator. */
public DTMAxisIterator reset();
Returns:the number of nodes in this iterator. This may be an expensive operation when called the first time.
/** * @return the number of nodes in this iterator. This may be an expensive * operation when called the first time. */
public int getLast();
Returns:The position of the current node in the set, as defined by XPath.
/** * @return The position of the current node in the set, as defined by XPath. */
public int getPosition();
Remembers the current node for the next call to gotoMark().
/** * Remembers the current node for the next call to gotoMark(). */
public void setMark();
Restores the current node remembered by setMark().
/** * Restores the current node remembered by setMark(). */
public void gotoMark();
Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
Params:
  • node – Sets the root of the iteration.
Returns:A DTMAxisIterator set to the start of the iteration.
/** * Set start to END should 'close' the iterator, * i.e. subsequent call to next() should return END. * * @param node Sets the root of the iteration. * * @return A DTMAxisIterator set to the start of the iteration. */
public DTMAxisIterator setStartNode(int node);
Get start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
Returns:The root node of the iteration.
/** * Get start to END should 'close' the iterator, * i.e. subsequent call to next() should return END. * * @return The root node of the iteration. */
public int getStartNode();
Returns:true if this iterator has a reversed axis, else false.
/** * @return true if this iterator has a reversed axis, else false. */
public boolean isReverse();
Returns:a deep copy of this iterator. The clone should not be reset from its current position.
/** * @return a deep copy of this iterator. The clone should not be reset * from its current position. */
public DTMAxisIterator cloneIterator();
Set if restartable.
/** * Set if restartable. */
public void setRestartable(boolean isRestartable);
Return the node at the given position.
Params:
  • position – The position
Returns:The node at the given position.
/** * Return the node at the given position. * * @param position The position * @return The node at the given position. */
public int getNodeByPosition(int position); }