Package 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:
Serializable
,SourceLocator
,LocationProvider
,SaxonLocator
,EvaluableItem
,SequenceIterable
,InstructionInfo
,Locator
Abstract superclass for all functions that take an optional collation argument
- See Also:
-
Field Summary
FieldsFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
checkArguments
(ExpressionVisitor visitor) Method called during static type checkingcopy()
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.Get the saved static base URIGet the collation if known statically, as a StringCollator objectMethods 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
-
Field Details
-
stringCollator
-
-
Constructor Details
-
CollatingFunction
public CollatingFunction()
-
-
Method Details
-
checkArguments
Description copied from class:SystemFunction
Method called during static type checking- Overrides:
checkArguments
in classSystemFunction
- Parameters:
visitor
- the expression visitor- Throws:
XPathException
-
getExpressionBaseURI
Get the saved static base URI- Returns:
- the static base URI
-
getStringCollator
Get the collation if known statically, as a StringCollator object- Returns:
- a StringCollator. Return null if the collation is not known statically.
-
copy
Copy an expression. This makes a deep copy.- Overrides:
copy
in classSystemFunction
- 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 usedcontext
- The dynamic evaluation context.- Returns:
- a GenericAtomicComparer that can be used to compare atomic values.
- Throws:
XPathException
-
getCollator
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 togetAtomicComparer(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 presentcontext
- The dynamic context- Returns:
- a StringCollator
- Throws:
XPathException
-