Qizx/open API

net.axyana.qizxopen.xquery.dm
Class DistinctNodeSequence

java.lang.Object
  extended bynet.axyana.qizxopen.xquery.dt.BaseValue
      extended bynet.axyana.qizxopen.xquery.dm.NodeSequenceBase
          extended bynet.axyana.qizxopen.xquery.dm.DistinctNodeSequence
All Implemented Interfaces:
java.io.Serializable, XQItem, XQValue

public class DistinctNodeSequence
extends NodeSequenceBase

Node Filter removing duplicates.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface net.axyana.qizxopen.xquery.XQItem
INCOMPARABLE
 
Constructor Summary
DistinctNodeSequence(XQValue source)
           
 
Method Summary
 XQValue bornAgain()
          Returns a new version of the sequence in its initial state.
 XQNode getNode()
          Gets the item as a Node value.
 boolean next()
          Attempts to get the next atomic item.
 
Methods inherited from class net.axyana.qizxopen.xquery.dm.NodeSequenceBase
asAtom, compareTo, getBoolean, getDouble, getInteger, getItem, getString, getType, isNode
 
Methods inherited from class net.axyana.qizxopen.xquery.dt.BaseValue
deepEqual, getDecimal, getFloat, hasQuickIndex, nextCollection, quickCount, quickIndex, setLazy, worthExpanding
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistinctNodeSequence

public DistinctNodeSequence(XQValue source)
Method Detail

getNode

public XQNode getNode()
Description copied from interface: XQItem
Gets the item as a Node value.

Specified by:
getNode in interface XQItem
Specified by:
getNode in class NodeSequenceBase

next

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

Throws:
XQueryException

bornAgain

public XQValue bornAgain()
Description copied from interface: XQValue
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 XQValue.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.


© 2005 Axyana Software