Class KeyIndex

  • All Implemented Interfaces:
    java.lang.Cloneable, DTMAxisIterator

    public class KeyIndex
    extends DTMAxisIteratorBase
    Stores mappings of key values or IDs to DTM nodes. Use of an instance of this class as a DTMAxisIterator is deprecated.
    Author:
    Morten Jorgensen, Santiago Pericas-Geertsen
    • Constructor Detail

      • KeyIndex

        public KeyIndex​(int dummy)
    • Method Detail

      • add

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

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

        public void lookupId​(java.lang.Object value)
        Deprecated.
        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.
      • getDOMNodeById

        public IntegerArray getDOMNodeById​(java.lang.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.
      • lookupKey

        public void lookupKey​(java.lang.Object value)
        Deprecated.

        This method must be called by the code generated by the key() function prior to returning the node iterator.

        Use of an instance of this class as a DTMAxisIterator is deprecated.

      • next

        public int next()
        Deprecated.

        Callers should not call next() after it returns END.

        Use of an instance of this class as a DTMAxisIterator is deprecated.

        Returns:
        The next node handle in the iteration, or END.
      • containsID

        public int containsID​(int node,
                              java.lang.Object value)
        Given a context node and the argument to the XPath id function, checks whether the context node is in the set of nodes that results from that reference to the id function. This is used in the implementation of id patterns.
        Parameters:
        node - The context node
        value - The argument to the id function
        Returns:
        1 if the context node is in the set of nodes returned by the reference to the id function; 0, otherwise
      • containsKey

        public int containsKey​(int node,
                               java.lang.Object value)

        Given a context node and the second argument to the XSLT key function, checks whether the context node is in the set of nodes that results from that reference to the key function. This is used in the implementation of key patterns.

        This particular KeyIndex object is the result evaluating the first argument to the key function, so it's not taken into any further account.

        Parameters:
        node - The context node
        value - The second argument to the key function
        Returns:
        1 if and only if the context node is in the set of nodes returned by the reference to the key function; 0, otherwise
      • reset

        public DTMAxisIterator reset()
        Deprecated.

        Resets the iterator to the last start node.

        Use of an instance of this class as a DTMAxisIterator is deprecated.

        Specified by:
        reset in interface DTMAxisIterator
        Overrides:
        reset in class DTMAxisIteratorBase
        Returns:
        A DTMAxisIterator which has been reset to the start node, which may or may not be the same as this iterator.
      • getLast

        public int getLast()
        Deprecated.

        Returns the number of elements in this iterator.

        Use of an instance of this class as a DTMAxisIterator is deprecated.

        Specified by:
        getLast in interface DTMAxisIterator
        Overrides:
        getLast in class DTMAxisIteratorBase
        Returns:
        The number of nodes in this iterator (forward) or 1 (reverse).
      • getPosition

        public int getPosition()
        Deprecated.

        Returns the position of the current node in the set.

        Use of an instance of this class as a DTMAxisIterator is deprecated.

        Specified by:
        getPosition in interface DTMAxisIterator
        Overrides:
        getPosition in class DTMAxisIteratorBase
        Returns:
        The position of the current node within the set, as defined by XPath. Note that this is one-based, not zero-based.
      • setMark

        public void setMark()
        Deprecated.

        Remembers the current node for the next call to gotoMark().

        Use of an instance of this class as a DTMAxisIterator is deprecated.

      • gotoMark

        public void gotoMark()
        Deprecated.

        Restores the current node remembered by setMark().

        Use of an instance of this class as a DTMAxisIterator is deprecated.

      • setStartNode

        public DTMAxisIterator setStartNode​(int start)
        Deprecated.

        Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.

        Use of an instance of this class as a DTMAxisIterator is deprecated.

        Parameters:
        start - Sets the root of the iteration.
        Returns:
        A DTMAxisIterator set to the start of the iteration.
      • getStartNode

        public int getStartNode()
        Deprecated.

        Get start to END should 'close' the iterator, i.e. subsequent call to next() should return END.

        Use of an instance of this class as a DTMAxisIterator is deprecated.

        Specified by:
        getStartNode in interface DTMAxisIterator
        Overrides:
        getStartNode in class DTMAxisIteratorBase
        Returns:
        The root node of the iteration.
      • setDom

        public void setDom​(DOM dom)
      • getKeyIndexIterator

        public KeyIndex.KeyIndexIterator getKeyIndexIterator​(java.lang.Object keyValue,
                                                             boolean isKeyCall)
        Create a KeyIndex.KeyIndexIterator that iterates over the nodes that result from a reference to the XSLT key function or XPath id function.
        Parameters:
        keyValue - A string or iterator representing the key values or id references
        isKeyCall - A boolean indicating whether the iterator is being created for a reference key or id
      • getKeyIndexIterator

        public KeyIndex.KeyIndexIterator getKeyIndexIterator​(java.lang.String keyValue,
                                                             boolean isKeyCall)
        Create a KeyIndex.KeyIndexIterator that iterates over the nodes that result from a reference to the XSLT key function or XPath id function.
        Parameters:
        keyValue - A string representing the key values or id references
        isKeyCall - A boolean indicating whether the iterator is being created for a reference key or id
      • getKeyIndexIterator

        public KeyIndex.KeyIndexIterator getKeyIndexIterator​(DTMAxisIterator keyValue,
                                                             boolean isKeyCall)
        Create a KeyIndex.KeyIndexIterator that iterates over the nodes that result from a reference to the XSLT key function or XPath id function.
        Parameters:
        keyValue - An iterator representing the key values or id references
        isKeyCall - A boolean indicating whether the iterator is being created for a reference key or id