Class SystemFunction
java.lang.Object
net.sf.saxon.expr.ComputedExpression
net.sf.saxon.expr.FunctionCall
net.sf.saxon.functions.SystemFunction
- All Implemented Interfaces:
Serializable, SourceLocator, Container, Expression, InstructionInfoProvider
- Direct Known Subclasses:
Adjust, Aggregate, Available, BaseURI, BooleanFn, CodepointEqual, CollatingFunction, Collection, CompileTimeFunction, Component, Concat, Current, CurrentDateTime, CurrentGroup, DateTimeConstructor, Doc, Document, Error, EscapeURI, Evaluate, Existence, ForceCase, FormatDate, FormatNumber2, Id, Idref, InScopePrefixes, Insert, KeyFn, Lang, Last, Matches, NamePart, NamespaceForPrefix, Nilled, NormalizeSpace, NormalizeUnicode, NumberFn, Parse, Position, QNameFn, RegexGroup, Remove, Replace, ResolveQName, ResolveURI, Root, Rounding, Serialize, StringFn, StringJoin, StringLength, Subsequence, Substring, SystemProperty, Tokenize, Trace, Translate, TreatFn, Unicode, UnparsedEntity, UnparsedText
Abstract superclass for system-defined and user-defined functions
- See Also:
-
Field Summary
FieldsFields inherited from class FunctionCall
argumentFields inherited from class ComputedExpression
locationId, staticPropertiesFields inherited from interface Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidaddContextDocumentArgument(int pos, String augmentedName) Add an implicit argument referring to the context document.voidMethod called during static type checkingintDetermine the cardinality of the function.intDetermine the special properties of this expression.voiddisplay(int level, PrintStream out, Configuration config) Diagnostic print of expression structureGet the detailsReturn the error code to be used for type errors.Determine the item type of the value returned by the functionprotected SequenceTypegetRequiredType(int arg) Get the required type of the nth argumentstatic voidThe main() method of this class is not intended to be called, it merely tells the code inspection tools in IDEA that the constructors of each function class are actual entry pointsstatic FunctionCallmakeSystemFunction(String name, int arity, NamePool pool) Make a system function (one in the standard function namespace).voidsetDetails(StandardFunction.Entry entry) Set the details of this type of functionprotected final voidSet "." as the default value for the first and only argument.Methods inherited from class FunctionCall
checkArgumentCount, getArguments, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, optimize, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionNameCode, simplify, simplifyArguments, typeCheckMethods inherited from class ComputedExpression
adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, setParentExpression, suppressValidation, typeError
-
Field Details
-
operation
protected int operation
-
-
Constructor Details
-
SystemFunction
public SystemFunction()
-
-
Method Details
-
makeSystemFunction
Make a system function (one in the standard function namespace).- Parameters:
name- The local name of the function. It may also be a lexical QName for a recognized built-in function, e.g. saxon:evaluate, in which case the prefix is hard-coded.- Returns:
- a FunctionCall that implements this function, if it exists, or null if the function is unknown.
-
setDetails
Set the details of this type of function -
getDetails
Get the details -
checkArguments
Method called during static type checking- Specified by:
checkArgumentsin classFunctionCall- Throws:
XPathException
-
getErrorCodeForTypeErrors
Return the error code to be used for type errors. This is overridden for functions such as exactly-one(), one-or-more(), ... -
getRequiredType
Get the required type of the nth argument -
getItemType
Determine the item type of the value returned by the function- Parameters:
th-- Returns:
- a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER, Type.NODE, or Type.ITEM (meaning not known at compile time)
-
computeCardinality
public int computeCardinality()Determine the cardinality of the function.- Specified by:
computeCardinalityin classComputedExpression
-
computeSpecialProperties
public int computeSpecialProperties()Determine the special properties of this expression. The general rule is that a system function call is non-creative if its return type is atomic, or if all its arguments are non-creative. This is overridden for the generate-id() function, which is considered creative if its operand is creative (because the result depends on the identity of the operand)- Overrides:
computeSpecialPropertiesin classComputedExpression
-
useContextItemAsDefault
protected final void useContextItemAsDefault()Set "." as the default value for the first and only argument. Called from subclasses. -
addContextDocumentArgument
Add an implicit argument referring to the context document. Called by functions such as id() and key() that take the context document as an implicit argument- Throws:
StaticError
-
display
Diagnostic print of expression structure- Specified by:
displayin interfaceExpression- Overrides:
displayin classFunctionCall- Parameters:
level- indentation level for this expressionout- Output destinationconfig-
-
main
-