net.sf.saxon.functions
Class DistinctValues
java.lang.Object
net.sf.saxon.expr.ComputedExpression
net.sf.saxon.expr.FunctionCall
net.sf.saxon.functions.SystemFunction
net.sf.saxon.functions.CollatingFunction
net.sf.saxon.functions.DistinctValues
- All Implemented Interfaces:
- Serializable, Expression, MappingFunction
public class DistinctValues
- extends CollatingFunction
- implements MappingFunction
The XPath 2.0 distinct-values() function
- See Also:
- Serialized Form
Methods inherited from class net.sf.saxon.functions.SystemFunction |
addContextDocumentArgument, checkArguments, computeCardinality, display, getDetails, getItemType, getName, getRequiredType, main, makeSystemFunction, useContextItemAsDefault |
Methods inherited from class net.sf.saxon.expr.ComputedExpression |
computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getDependencies, getIntrinsicDependencies, getLineNumber, getSpecialProperties, markTailFunctionCalls, setLineNumber, typeError |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DistinctValues
public DistinctValues()
iterate
public SequenceIterator iterate(XPathContext context)
throws XPathException
- Evaluate the function to return an iteration of selected values or nodes.
- Specified by:
iterate
in interface Expression
- Overrides:
iterate
in class ComputedExpression
- Parameters:
context
- supplies the context for evaluation
- Returns:
- a SequenceIterator that can be used to iterate over the result
of the expression
- Throws:
XPathException
- if any dynamic error occurs evaluating the
expression
map
public Object map(Item item,
XPathContext context,
Object info)
throws XPathException
- Mapping function. Maps a duplicate item to null (no item in the result) and any other item
to itself. The general-purpose "info" object is in this case a pair of two objects, the HashSet
used for the value lookup, and the AtomicComparer used to compare values.
- Specified by:
map
in interface MappingFunction
- Parameters:
item
- The item to be mapped.
If context is supplied, this must be the same as context.currentItem().context
- The processing context. This is supplied only for mapping constructs that
set the context node, position, and size. Otherwise it is null.info
- Arbitrary information supplied by the creator of the MappingIterator. It must be
read-only and immutable for the duration of the iteration.
- Returns:
- either (a) a SequenceIterator over the sequence of items that the supplied input
item maps to, or (b) an Item if it maps to a single item, or (c) null if it maps to an empty
sequence.
- Throws:
XPathException
getAtomicSortComparer
protected AtomicSortComparer getAtomicSortComparer(int arg,
XPathContext context)
throws XPathException
- Get a AtomicSortComparer that can be used to compare values
- Parameters:
arg
- the position of the argument (starting at 0) containing the collation name.
If this argument was not supplied, the default collation is usedcontext
- The dynamic evaluation context.
- Throws:
XPathException