Package net.sf.saxon.xpath
Class XPathFunctionCall
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.FunctionCall
net.sf.saxon.xpath.XPathFunctionCall
- All Implemented Interfaces:
Callable,ExportAgent,Locatable,IdentityComparable,Traceable
This class is an expression that calls an external function supplied using the
JAXP XPathFunction interface
-
Nested Class Summary
Nested classes/interfaces inherited from class net.sf.saxon.expr.FunctionCall
FunctionCall.FunctionCallElaborator -
Field Summary
Fields inherited from class net.sf.saxon.expr.Expression
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, MAX_COST, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, staticProperties, UPDATE_METHOD, WATCH_METHOD -
Constructor Summary
ConstructorsConstructorDescriptionXPathFunctionCall(StructuredQName name, XPathFunction function) Default constructor -
Method Summary
Modifier and TypeMethodDescriptioncall(XPathContext context, Sequence[] argValues) Call an extension function previously identified using the bind() method.protected intDetermine the cardinality of the resultcopy(RebindingMap rebindings) Copy an expression.Make an elaborator for this expressionGet the qualified name of the function being calledintDetermine which aspects of the context the expression depends on.Determine the data type of the expression, if possible.getTargetFunction(XPathContext context) Get the target function to be callediterate(XPathContext context) Evaluate the function.preEvaluate(ExpressionVisitor visitor) preEvaluate: this method suppresses compile-time evaluation by doing nothing (because the external function might have side-effects and might use the context)Methods inherited from class net.sf.saxon.expr.FunctionCall
adjustRequiredType, checkArgumentCount, checkArguments, checkFunctionCall, computeHashCode, equals, evaluateItem, export, getArg, getArguments, getArity, getDisplayName, getExpressionName, getImplementationMethod, getNetCost, getOperanda, operands, optimize, plural, preEvaluateIfConstant, setArg, setArguments, setOperanda, setOperanda, simplifyArguments, toShortString, toString, typeCheckMethods inherited from class net.sf.saxon.expr.Expression
adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeSpecialProperties, computeStaticProperties, dispatchTailCall, dynamicError, effectiveBooleanValue, evaluateAsString, explain, getCardinality, getConfiguration, getCost, getDependencies, getEvaluationMethod, getExtraProperty, getLocalRetainedStaticContext, getLocation, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStaticUType, getStreamerName, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isInstruction, isLiftable, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, makeElaborator, markTailFunctionCalls, operandList, operandSparseList, optimizeChildren, prepareForStreaming, process, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setFlattened, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, supportsLazyEvaluation, suppressValidation, toPattern, typeCheckChildren, typeError, unordered, verifyParentPointers, warning, withLocationMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.sf.saxon.trace.Traceable
gatherProperties
-
Constructor Details
-
XPathFunctionCall
Default constructor- Parameters:
name- the qualified name of the functionfunction- the target function
-
-
Method Details
-
getFunctionName
Get the qualified name of the function being called- Specified by:
getFunctionNamein classFunctionCall- Returns:
- the qualified name
-
getTargetFunction
Get the target function to be called- Specified by:
getTargetFunctionin classFunctionCall- Parameters:
context- the dynamic evaluation context- Returns:
- always null
-
preEvaluate
preEvaluate: this method suppresses compile-time evaluation by doing nothing (because the external function might have side-effects and might use the context)- Overrides:
preEvaluatein classFunctionCall- Parameters:
visitor- an expression visitor- Returns:
- the result of the early evaluation, or the original expression, or potentially a simplified expression
-
getIntrinsicDependencies
public int getIntrinsicDependencies()Determine which aspects of the context the expression depends on. XPath external functions are given no access to context information so they cannot have any dependencies on it.- Overrides:
getIntrinsicDependenciesin classExpression- Returns:
- an integer containing bit-significant flags identifying the "intrinsic" dependencies. The flags are documented in class net.sf.saxon.value.StaticProperty
-
copy
Copy an expression. This makes a deep copy.- Specified by:
copyin classExpression- Parameters:
rebindings- variables that need to be re-bound- Returns:
- the copy of the original expression
-
iterate
Evaluate the function.- Overrides:
iteratein classFunctionCall- Parameters:
context- The context in which the function is to be evaluated- Returns:
- a Value representing the result of the function.
- Throws:
XPathException- if the function cannot be evaluated.
-
call
Call an extension function previously identified using the bind() method. A subclass can override this method.- Specified by:
callin interfaceCallable- Parameters:
context- The XPath dynamic contextargValues- The values of the arguments- Returns:
- The value returned by the extension function
- Throws:
XPathException- if a dynamic error occurs during the evaluation of the expression
-
getItemType
Determine the data type of the expression, if possible. All expressions return sequences, in general; this method determines the type of the items within the sequence, assuming that (a) this is known in advance, and (b) it is the same for all items in the sequence.This method will always return a result, though it may be the best approximation that is available at the time.
- Specified by:
getItemTypein classExpression- Returns:
- the item type
-
computeCardinality
protected int computeCardinality()Determine the cardinality of the result- Specified by:
computeCardinalityin classExpression- Returns:
- ZERO_OR_MORE (we don't know)
-
getElaborator
Make an elaborator for this expression- Overrides:
getElaboratorin classExpression- Returns:
- an appropriate
Elaborator
-