org.apache.xalan.xsltc.dom

Class KeyIndex

Implemented Interfaces:
Cloneable, DTMAxisIterator

public class KeyIndex
extends DTMAxisIteratorBase

Authors:
Morten Jorgensen
Santiago Pericas-Geertsen

Nested Class Summary

Fields inherited from interface org.apache.xml.dtm.DTMAxisIterator

END

Constructor Summary

KeyIndex(int dummy)

Method Summary

void
add(Object value, int node)
Adds a node to the node list for a given value.
DTMAxisIterator
cloneIterator()
Returns a deep copy of this iterator.
int
containsID(int node, Object value)
int
containsKey(int node, Object value)
IntegerArray
getDOMNodeById(String id)
Return an IntegerArray for the DOM Node which has the given id.
int
getLast()
Returns the number of elements in this iterator.
int
getPosition()
Returns the position of the current node in the set.
int
getStartNode()
Get start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
void
gotoMark()
Restores the current node remembered by setMark().
boolean
isReverse()
True if this iterator has a reversed axis.
void
lookupId(Object value)
This method must be called by the code generated by the id() function prior to returning the node iterator.
void
lookupKey(Object value)
This method must be called by the code generated by the key() function prior to returning the node iterator.
void
merge(KeyIndex other)
Merge the current value's nodeset set by lookupKey() with _nodes.
int
next()
Callers should not call next() after it returns END.
DTMAxisIterator
reset()
Resets the iterator to the last start node.
void
setDom(DOM dom)
void
setMark()
Remembers the current node for the next call to gotoMark().
void
setRestartable(boolean flag)
Set if restartable.
DTMAxisIterator
setStartNode(int start)
Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.

Methods inherited from class org.apache.xml.dtm.ref.DTMAxisIteratorBase

cloneIterator, getAxis, getLast, getNodeByPosition, getPosition, getStartNode, includeSelf, isDocOrdered, isReverse, reset, setRestartable

Constructor Details

KeyIndex

public KeyIndex(int dummy)

Method Details

add

public void add(Object value,
                int node)
Adds a node to the node list for a given value. Nodes will always be added in document order.


cloneIterator

public DTMAxisIterator cloneIterator()
Returns a deep copy of this iterator.
Specified by:
cloneIterator in interface DTMAxisIterator
Overrides:
cloneIterator in interface DTMAxisIteratorBase


containsID

public int containsID(int node,
                      Object value)


containsKey

public int containsKey(int node,
                       Object value)


getDOMNodeById

public IntegerArray getDOMNodeById(String id)
Return an IntegerArray for the DOM Node which has the given id.

Parameters:
id - The id

Returns:
A IntegerArray representing the Node whose id is the given value.


getLast

public int getLast()
Returns the number of elements in this iterator.
Specified by:
getLast in interface DTMAxisIterator
Overrides:
getLast in interface DTMAxisIteratorBase


getPosition

public int getPosition()
Returns the position of the current node in the set.
Specified by:
getPosition in interface DTMAxisIterator
Overrides:
getPosition in interface DTMAxisIteratorBase


getStartNode

public int getStartNode()
Get start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
Specified by:
getStartNode in interface DTMAxisIterator
Overrides:
getStartNode in interface DTMAxisIteratorBase


gotoMark

public void gotoMark()
Restores the current node remembered by setMark().
Specified by:
gotoMark in interface DTMAxisIterator


isReverse

public boolean isReverse()
True if this iterator has a reversed axis.
Specified by:
isReverse in interface DTMAxisIterator
Overrides:
isReverse in interface DTMAxisIteratorBase


lookupId

public void lookupId(Object value)
This method must be called by the code generated by the id() function prior to returning the node iterator. The lookup code for key() and id() differ in the way the lookup value can be whitespace separated list of tokens for the id() function, but a single string for the key() function.


lookupKey

public void lookupKey(Object value)
This method must be called by the code generated by the key() function prior to returning the node iterator.


merge

public void merge(KeyIndex other)
Merge the current value's nodeset set by lookupKey() with _nodes.


next

public int next()
Callers should not call next() after it returns END.
Specified by:
next in interface DTMAxisIterator


reset

public DTMAxisIterator reset()
Resets the iterator to the last start node.
Specified by:
reset in interface DTMAxisIterator
Overrides:
reset in interface DTMAxisIteratorBase


setDom

public void setDom(DOM dom)


setMark

public void setMark()
Remembers the current node for the next call to gotoMark().
Specified by:
setMark in interface DTMAxisIterator


setRestartable

public void setRestartable(boolean flag)
Set if restartable.
Specified by:
setRestartable in interface DTMAxisIterator
Overrides:
setRestartable in interface DTMAxisIteratorBase


setStartNode

public DTMAxisIterator setStartNode(int start)
Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
Specified by:
setStartNode in interface DTMAxisIterator


Copyright B) 2004 Apache XML Project. All Rights Reserved.