## 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:
  CodepointEqual, 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
`protected XPathContext` `conversionContext`

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
`void` `checkArguments(StaticContext env)` Method called during static type checking
`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)` 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, computeCardinality, computeSpecialProperties, display, getDetails, getErrorCodeForTypeErrors, getItemType, getRequiredType, main, makeSystemFunction, setDetails, useContextItemAsDefault`

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

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

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

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

Field Detail

### conversionContext

    protected XPathContext conversionContext

Constructor Detail

### CollatingFunction

    public CollatingFunction()

Method Detail

### checkArguments

    public void checkArguments(StaticContext env)
                        throws XPathException

  Description copied from class: `SystemFunction`
  Method called during static type checking

  Overrides:
    `checkArguments` in class `SystemFunction`
  Throws:
    `XPathException`

### preEvaluate

    public Expression preEvaluate(StaticContext env)
                           throws XPathException

  preEvaluate: if all arguments are known statically, evaluate early

  Overrides:
    `preEvaluate` in class `FunctionCall`
  Throws:
    `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.
  Throws:
    `XPathException`

### getCollator

    protected java.util.Comparator getCollator(int arg,
                                               XPathContext context)
                                        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
  Returns:
    a Comparator, which will either be a java.text.Collator, or a CodepointCollator
  Throws:
    `XPathException`