Qizx/Open v0.4p2

net.xfra.qizxopen.xquery.dm
Class DistinctNodeSequence

java.lang.Object
  |
  +--net.xfra.qizxopen.xquery.dt.BaseValue
        |
        +--net.xfra.qizxopen.xquery.dm.NodeSequenceBase
              |
              +--net.xfra.qizxopen.xquery.dm.DistinctNodeSequence
All Implemented Interfaces:
Item, Value

public class DistinctNodeSequence
extends NodeSequenceBase

Node Filter removing duplicates.


Nested Class Summary
 
Nested classes inherited from class net.xfra.qizxopen.xquery.Value
Value.Empty
 
Field Summary
 
Fields inherited from interface net.xfra.qizxopen.xquery.Value
empty
 
Fields inherited from interface net.xfra.qizxopen.xquery.Item
INCOMPARABLE
 
Constructor Summary
DistinctNodeSequence(Value source)
           
 
Method Summary
 Node asNode()
          Gets the item as a Node value (optimisable).
 Value bornAgain()
          Returns a new version of the sequence in its initial state.
 boolean next()
          Attempts to get the next atomic item.
 
Methods inherited from class net.xfra.qizxopen.xquery.dm.NodeSequenceBase
asAtom, asBoolean, asDouble, asInteger, asItem, asString, compareTo, getType, isNode
 
Methods inherited from class net.xfra.qizxopen.xquery.dt.BaseValue
asDecimal, asFloat, deepEqual, nextCollection, quickCount, setLazy, worthExpanding
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistinctNodeSequence

public DistinctNodeSequence(Value source)
Method Detail

asNode

public Node asNode()
            throws TypeException
Description copied from interface: Item
Gets the item as a Node value (optimisable).

Specified by:
asNode in interface Item
Specified by:
asNode in class NodeSequenceBase
TypeException

next

public boolean next()
             throws XQueryException
Description copied from interface: Value
Attempts to get the next atomic item. If true is returned, the item value is available through one of the specialized accessors.

XQueryException

bornAgain

public Value bornAgain()
Description copied from interface: Value
Returns a new version of the sequence in its initial state. Value objects are in principle immutable, but due to the iterative implementation style (see the Value.next() method), this is not actually true. Therefore when a value is used several times (in particular the value of a variable), there is a need for "regeneration".

NOTE: this needs not be a deep copy, because only the state of the iterator is concerned, not the underlying data.


 Copyright Xavier FRANC 2003-2004