## net.sf.saxon.functions
Class CollatingFunction

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.FunctionCall
              net.sf.saxon.functions.SystemFunction
                  net.sf.saxon.functions.CollatingFunction

All Implemented Interfaces:
  java.io.Serializable, javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, org.xml.sax.Locator

Direct Known Subclasses:
  Compare, Contains, DeepEqual, DistinctValues, Index, 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 StringCollator` `stringCollator`

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.Expression
`EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, staticProperties`

Constructor Summary
`CollatingFunction()`

Method Summary
`void` `checkArguments(ExpressionVisitor visitor)` Method called during static type checking
`Expression` `copy()` Copy an expression.
`protected GenericAtomicComparer` `getAtomicComparer(int arg, XPathContext context)` Get a GenericAtomicComparer that can be used to compare values.
`protected StringCollator` `getCollator(int arg, XPathContext context)` Get a collator suitable for comparing strings.
`java.net.URI` `getExpressionBaseURI()` Get the saved static base URI
`StringCollator` `getStringCollator()` Get the collation if known statically, as a StringCollator object

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, addDocToPathMap, computeCardinality, computeSpecialProperties, getDetails, getErrorCodeForTypeErrors, getItemType, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`addExternalFunctionCallToPathMap, checkArgumentCount, equals, explain, getArguments, getDisplayName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck`

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

`addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, findParentOf, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isUpdatingExpression, iterate, iterateEvents, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError`

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

Field Detail

### stringCollator

    protected StringCollator stringCollator

Constructor Detail

### CollatingFunction

    public CollatingFunction()

Method Detail

### checkArguments

    public void checkArguments(ExpressionVisitor visitor)
                        throws XPathException

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

  Overrides:
    `checkArguments` in class `SystemFunction`
  Parameters:
    `visitor` - the expression visitor
  Throws:
    `XPathException`

### getExpressionBaseURI

    public java.net.URI getExpressionBaseURI()

  Get the saved static base URI

  Returns:
    the static base URI

### getStringCollator

    public StringCollator getStringCollator()

  Get the collation if known statically, as a StringCollator object

  Returns:
    a StringCollator. Return null if the collation is not known statically.

### copy

    public Expression copy()

  Copy an expression. This makes a deep copy.

  Overrides:
    `copy` in class `SystemFunction`
  Returns:
    the copy of the original expression

### getAtomicComparer

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

  Get a GenericAtomicComparer that can be used to compare values. This method is called at run time by subclasses to evaluate the parameter containing the collation name.

  The difference between this method and `getCollator(int, net.sf.saxon.expr.XPathContext)` is that a GenericAtomicComparer is capable of comparing values of any atomic type, not only strings. It is therefore called by functions such as compare, deep-equal, index-of, and min() and max() where the operands may include a mixture of strings and other types.

  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.
  Returns:
    a GenericAtomicComparer that can be used to compare atomic values.
  Throws:
    `XPathException`

### getCollator

    protected StringCollator 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. This method is called by subclasses at run time. It is used (in contrast to `getAtomicComparer(int, net.sf.saxon.expr.XPathContext)`) when it is known that the values to be compared are always strings.

  Parameters:
    `arg` - The argument position (counting from zero) that holds the collation URI if present
    `context` - The dynamic context
  Returns:
    a StringCollator
  Throws:
    `XPathException`

Copyright (c) Saxonica Limited. All rights reserved.