## com.icl.saxon.expr
Class DistinctEnumeration

    java.lang.Object
      |
      +--com.icl.saxon.expr.DistinctEnumeration

All Implemented Interfaces:
  NodeEnumeration

public class DistinctEnumeration
extends java.lang.Object
implements NodeEnumeration

An enumeration returning the distinct nodes from a supplied nodeset

Constructor Summary
`DistinctEnumeration(Context c, NodeEnumeration p1, Expression exp)`
`DistinctEnumeration(NodeEnumeration p1, Controller controller)` Form an enumeration of the distinct nodes in a node-set, distinguishing nodes by their string-value

Method Summary
`boolean` `hasMoreElements()` Determine whether there are more nodes to come.
`boolean` `isPeer()` Determine whether the nodes returned by this enumeration are known to be peers, that is, no node is a descendant or ancestor of another node.
`boolean` `isReverseSorted()` Determine whether the nodes returned by this enumeration are known to be in reverse document order.
`boolean` `isSorted()` Determine whether the nodes returned by this enumeration are known to be in document order
`NodeInfo` `nextElement()` Get the next node in sequence.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DistinctEnumeration

    public DistinctEnumeration(NodeEnumeration p1,
                               Controller controller)
                        throws XPathException

  Form an enumeration of the distinct nodes in a node-set, distinguishing nodes by their string-value

### DistinctEnumeration

    public DistinctEnumeration(Context c,
                               NodeEnumeration p1,
                               Expression exp)
                        throws XPathException

Method Detail

### hasMoreElements

    public boolean hasMoreElements()

  Description copied from interface: `NodeEnumeration`
  Determine whether there are more nodes to come.
  (Note the term "Element" is used here in the sense of the standard Java Enumeration class, it has nothing to do with XML elements).

  Specified by:
    `hasMoreElements` in interface `NodeEnumeration`
  Returns:
    true if there are more nodes

### nextElement

    public NodeInfo nextElement()
                         throws XPathException

  Description copied from interface: `NodeEnumeration`
  Get the next node in sequence.
  (Note the term "Element" is used here in the sense of the standard Java Enumeration class, it has nothing to do with XML elements).

  Specified by:
    `nextElement` in interface `NodeEnumeration`
  Returns:
    the next NodeInfo
    `XPathException`

### isSorted

    public boolean isSorted()

  Description copied from interface: `NodeEnumeration`
  Determine whether the nodes returned by this enumeration are known to be in document order

  Specified by:
    `isSorted` in interface `NodeEnumeration`
  Returns:
    true if the nodes are guaranteed to be in document order.

### isReverseSorted

    public boolean isReverseSorted()

  Description copied from interface: `NodeEnumeration`
  Determine whether the nodes returned by this enumeration are known to be in reverse document order.

  Specified by:
    `isReverseSorted` in interface `NodeEnumeration`
  Returns:
    true if the nodes are guaranteed to be in document order.

### isPeer

    public boolean isPeer()

  Description copied from interface: `NodeEnumeration`
  Determine whether the nodes returned by this enumeration are known to be peers, that is, no node is a descendant or ancestor of another node. This significance of this property is that if a peer enumeration is applied to each node in a set derived from another peer enumeration, and if both enumerations are sorted, then the result is also sorted.

  Specified by:
    `isPeer` in interface `NodeEnumeration`