## net.sf.saxon.functions
Class CollatingFunction

    java.lang.Object
      |
      +--net.sf.saxon.expr.ComputedExpression
            |
            +--net.sf.saxon.expr.FunctionCall
                  |
                  +--net.sf.saxon.functions.SystemFunction
                        |
                        +--net.sf.saxon.functions.CollatingFunction

All Implemented Interfaces:
  Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

Direct Known Subclasses:
  Compare, Contains, DeepEqual, DistinctValues, IndexOf, Minimax

public abstract class CollatingFunction
extends SystemFunction

Abstract superclass for all functions that take an optional collation argument

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.functions.SystemFunction
`operation`

Fields inherited from class net.sf.saxon.expr.FunctionCall
`argument`

Fields inherited from class net.sf.saxon.expr.ComputedExpression
`locationId, staticProperties`

Fields inherited from interface net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`CollatingFunction()`

Method Summary
`protected AtomicComparer` `getAtomicComparer(int arg, XPathContext context)` Get a AtomicComparer that can be used to compare values
`protected java.util.Comparator` `getCollator(int arg, XPathContext context, boolean useDefault)` Get a collator suitable for comparing strings.
`Expression` `preEvaluate(StaticContext env)` preEvaluate: if all arguments are known statically, evaluate early

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, checkArguments, computeCardinality, display, getDetails, getItemType, getRequiredType, main, makeSystemFunction, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`analyze, checkArgumentCount, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, promote, setArguments, setFunctionNameCode, simplify, simplifyArguments`

Methods inherited from class net.sf.saxon.expr.ComputedExpression

`adoptChildExpression, computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, typeError`

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

Constructor Detail

### CollatingFunction

    public CollatingFunction()

Method Detail

### preEvaluate

    public Expression preEvaluate(StaticContext env)
                           throws XPathException

  preEvaluate: if all arguments are known statically, evaluate early

  Overrides:
    `preEvaluate` in class `FunctionCall`
    `XPathException`

### getAtomicComparer

    protected AtomicComparer getAtomicComparer(int arg,
                                               XPathContext context)
                                        throws XPathException

  Get a AtomicComparer 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 used
    `context` - The dynamic evaluation context.
    `XPathException`

### getCollator

    protected java.util.Comparator getCollator(int arg,
                                               XPathContext context,
                                               boolean useDefault)
                                        throws XPathException

  Get a collator suitable for comparing strings. Returns the collator specified in the given function argument if present, otherwise returns the default collator.

  Parameters:
    `arg` - The argument position (counting from zero) that holds the collation URI if present
    `context` - The dynamic context
    `useDefault` - true if, in the absence of a collation argument, the default collation should be used; false if the codepoint collation should be used.
  Returns:
    a Comparator, which will either be a java.text.Collator, or a CodepointCollator
    `XPathException`