org.apache.xpath.axes
Class NodeSequence

java.lang.Object
  |
  +--org.apache.xpath.Expression
        |
        +--org.apache.xpath.objects.XObject
              |
              +--org.apache.xpath.axes.NodeSequence
Direct Known Subclasses:
XNodeSet

public class NodeSequence
extends XObject
implements DTMIterator, java.lang.Cloneable, PathComponent

This class is the dynamic wrapper for a Xalan DTMIterator instance, and provides random access capabilities.

See Also:
Serialized Form

Fields inherited from class org.apache.xpath.objects.XObject
CLASS_BOOLEAN, CLASS_NODESET, CLASS_NULL, CLASS_NUMBER, CLASS_RTREEFRAG, CLASS_STRING, CLASS_UNKNOWN, CLASS_UNRESOLVEDVARIABLE
 
Constructor Summary
NodeSequence()
          Create a new NodeSequence in an invalid (null) state.
NodeSequence(DTMIterator iter, int context, XPathContext xctxt, boolean shouldCacheNodes)
          Create a new NodeSequence from a (already cloned) iterator.
NodeSequence(DTMManager dtmMgr)
          Construct an empty XNodeSet object.
NodeSequence(java.lang.Object nodeVector)
          Create a new NodeSequence from a (already cloned) iterator.
 
Method Summary
 void allowDetachToRelease(boolean allowRelease)
          Calling this with a value of false will cause the nodeset to be cached.
 java.lang.Object clone()
          Get a clone of this iterator, but don't reset the iteration in the process, so that it may be used from the current position.
 DTMIterator cloneWithReset()
          Note: Not a deep clone.
 void detach()
           
 void fixupVariables(java.util.Vector vars, int globalsSize)
           
 int getAnalysisBits()
           
 int getAxis()
           
 DTMIterator getContainedIter()
          Get the functional iterator that fetches nodes.
 int getCurrentNode()
           
 int getCurrentPos()
           
 DTM getDTM(int nodeHandle)
           
 DTMManager getDTMManager()
           
 boolean getExpandEntityReferences()
           
 int getLength()
           
 int getRoot()
           
 int getWhatToShow()
           
 boolean hasCache()
          If this iterator needs to cache nodes that are fetched, they are stored here.
 boolean isDocOrdered()
           
 boolean isFresh()
           
 boolean isMutable()
           
 int item(int index)
           
 int nextNode()
           
 int previousNode()
           
 void reset()
           
 void runTo(int index)
           
 void setCurrentPos(int i)
           
 void setItem(int node, int index)
           
 void setIter(DTMIterator iter)
          Set the functional iterator that fetches nodes.
 void setRoot(int nodeHandle, java.lang.Object environment)
           
 void setShouldCacheNodes(boolean b)
           
 
Methods inherited from class org.apache.xpath.objects.XObject
appendToFsb, bool, boolWithSideEffects, callVisitors, castToType, create, create, deepEquals, destruct, dispatchCharactersEvents, equals, execute, getFresh, getType, getTypeString, greaterThan, greaterThanOrEqual, iter, lessThan, lessThanOrEqual, mutableNodeset, nodelist, nodeset, notEquals, num, numWithSideEffects, object, rtf, rtf, rtree, rtree, str, toString, xstr
 
Methods inherited from class org.apache.xpath.Expression
asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, error, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isStableNumber, num, warn, xstr
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NodeSequence

public NodeSequence(DTMIterator iter,
                    int context,
                    XPathContext xctxt,
                    boolean shouldCacheNodes)
Create a new NodeSequence from a (already cloned) iterator.
Parameters:
iter - Cloned (not static) DTMIterator.
context - The initial context node.
xctxt - The execution context.
shouldCacheNodes - True if this sequence can random access.

NodeSequence

public NodeSequence(java.lang.Object nodeVector)
Create a new NodeSequence from a (already cloned) iterator.
Parameters:
iter - Cloned (not static) DTMIterator.

NodeSequence

public NodeSequence(DTMManager dtmMgr)
Construct an empty XNodeSet object. This is used to create a mutable nodeset to which random nodes may be added.

NodeSequence

public NodeSequence()
Create a new NodeSequence in an invalid (null) state.
Method Detail

hasCache

public boolean hasCache()
If this iterator needs to cache nodes that are fetched, they are stored here.

setIter

public final void setIter(DTMIterator iter)
Set the functional iterator that fetches nodes.
Parameters:
iter - The iterator that is to be contained.

getContainedIter

public final DTMIterator getContainedIter()
Get the functional iterator that fetches nodes.
Returns:
The contained iterator.

getDTM

public DTM getDTM(int nodeHandle)
Specified by:
getDTM in interface DTMIterator
See Also:
DTMIterator.getDTM(int)

getDTMManager

public DTMManager getDTMManager()
Specified by:
getDTMManager in interface DTMIterator
See Also:
DTMIterator.getDTMManager()

getRoot

public int getRoot()
Specified by:
getRoot in interface DTMIterator
See Also:
DTMIterator.getRoot()

setRoot

public void setRoot(int nodeHandle,
                    java.lang.Object environment)
Specified by:
setRoot in interface DTMIterator
See Also:
DTMIterator.setRoot(int, Object)

reset

public void reset()
Specified by:
reset in interface DTMIterator
Overrides:
reset in class XObject
See Also:
DTMIterator.reset()

getWhatToShow

public int getWhatToShow()
Specified by:
getWhatToShow in interface DTMIterator
See Also:
DTMIterator.getWhatToShow()

getExpandEntityReferences

public boolean getExpandEntityReferences()
Specified by:
getExpandEntityReferences in interface DTMIterator
See Also:
DTMIterator.getExpandEntityReferences()

nextNode

public int nextNode()
Specified by:
nextNode in interface DTMIterator
See Also:
DTMIterator.nextNode()

previousNode

public int previousNode()
Specified by:
previousNode in interface DTMIterator
See Also:
DTMIterator.previousNode()

detach

public void detach()
Specified by:
detach in interface DTMIterator
Overrides:
detach in class XObject
See Also:
DTMIterator.detach()

allowDetachToRelease

public void allowDetachToRelease(boolean allowRelease)
Calling this with a value of false will cause the nodeset to be cached.
Specified by:
allowDetachToRelease in interface DTMIterator
Overrides:
allowDetachToRelease in class XObject
See Also:
DTMIterator.allowDetachToRelease(boolean)

getCurrentNode

public int getCurrentNode()
Specified by:
getCurrentNode in interface DTMIterator
See Also:
DTMIterator.getCurrentNode()

isFresh

public boolean isFresh()
Specified by:
isFresh in interface DTMIterator
See Also:
DTMIterator.isFresh()

setShouldCacheNodes

public void setShouldCacheNodes(boolean b)
Specified by:
setShouldCacheNodes in interface DTMIterator
See Also:
DTMIterator.setShouldCacheNodes(boolean)

isMutable

public boolean isMutable()
Specified by:
isMutable in interface DTMIterator
See Also:
DTMIterator.isMutable()

getCurrentPos

public int getCurrentPos()
Specified by:
getCurrentPos in interface DTMIterator
See Also:
DTMIterator.getCurrentPos()

runTo

public void runTo(int index)
Specified by:
runTo in interface DTMIterator
See Also:
DTMIterator.runTo(int)

setCurrentPos

public void setCurrentPos(int i)
Specified by:
setCurrentPos in interface DTMIterator
See Also:
DTMIterator.setCurrentPos(int)

item

public int item(int index)
Specified by:
item in interface DTMIterator
See Also:
DTMIterator.item(int)

setItem

public void setItem(int node,
                    int index)
Specified by:
setItem in interface DTMIterator
See Also:
DTMIterator.setItem(int, int)

getLength

public int getLength()
Specified by:
getLength in interface DTMIterator
See Also:
DTMIterator.getLength()

cloneWithReset

public DTMIterator cloneWithReset()
                           throws java.lang.CloneNotSupportedException
Note: Not a deep clone.
Specified by:
cloneWithReset in interface DTMIterator
See Also:
DTMIterator.cloneWithReset()

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Get a clone of this iterator, but don't reset the iteration in the process, so that it may be used from the current position. Note: Not a deep clone.
Specified by:
clone in interface DTMIterator
Returns:
A clone of this object.
Throws:
java.lang.CloneNotSupportedException -  

isDocOrdered

public boolean isDocOrdered()
Specified by:
isDocOrdered in interface DTMIterator
See Also:
DTMIterator.isDocOrdered()

getAxis

public int getAxis()
Specified by:
getAxis in interface DTMIterator
See Also:
DTMIterator.getAxis()

getAnalysisBits

public int getAnalysisBits()
Specified by:
getAnalysisBits in interface PathComponent
See Also:
PathComponent.getAnalysisBits()

fixupVariables

public void fixupVariables(java.util.Vector vars,
                           int globalsSize)
Overrides:
fixupVariables in class XObject
See Also:
Expression#fixupVariables(Vector, int)


Copyright © 2003 Apache XML Project. All Rights Reserved.