com.saxonica.extra
Class DynamicFunctionCall

java.lang.Object
  extended by net.sf.saxon.expr.Expression
      extended by net.sf.saxon.expr.FunctionCall
          extended by net.sf.saxon.functions.SystemFunction
              extended by com.saxonica.extra.DynamicFunctionCall
All Implemented Interfaces:
Serializable, SourceLocator, EvaluableItem, SequenceIterable, InstructionInfoProvider

public class DynamicFunctionCall
extends SystemFunction

This class implements the extension function saxon:call(), which calls a FirstClassFunction previously set up using saxon:function(). The first argument is the FirstClassFunction object, the remaining arguments are the parameters to be supplied in the call.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
 
Constructor Summary
DynamicFunctionCall()
           
 
Method Summary
 SequenceIterator iterate(XPathContext context)
          Return an Iterator to iterate over the values of a sequence.
 Expression preEvaluate(ExpressionVisitor visitor)
          Pre-evaluate a function at compile time.
 
Methods inherited from class net.sf.saxon.functions.SystemFunction
addDocToPathMap, checkArguments, computeCardinality, computeSpecialProperties, copy, getDetails, getErrorCodeForTypeErrors, getItemType, makeSystemFunction, optimize, setDetails
 
Methods inherited from class net.sf.saxon.expr.FunctionCall
addExternalFunctionCallToPathMap, equals, explain, getArguments, getDisplayName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, promote, replaceSubExpression, setArguments, setFunctionName, simplify, toString, typeCheck
 
Methods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, display, doPromotion, effectiveBooleanValue, evaluateAsString, evaluateItem, explain, findParentOf, getCardinality, getColumnNumber, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, iterateEvents, markTailFunctionCalls, process, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DynamicFunctionCall

public DynamicFunctionCall()
Method Detail

preEvaluate

public Expression preEvaluate(ExpressionVisitor visitor)
                       throws XPathException
Pre-evaluate a function at compile time. Pre-evaluation of this function is not allowed because it requires access to the dynamic context

Overrides:
preEvaluate in class FunctionCall
Parameters:
visitor - an expression visitor an expression visitor
Returns:
the result of the early evaluation, or the original expression, or potentially a simplified expression
Throws:
XPathException

iterate

public SequenceIterator iterate(XPathContext context)
                         throws XPathException
Return an Iterator to iterate over the values of a sequence. The value of every expression can be regarded as a sequence, so this method is supported for all expressions. This default implementation handles iteration for expressions that return singleton values: for non-singleton expressions, the subclass must provide its own implementation.

Specified by:
iterate in interface SequenceIterable
Overrides:
iterate in class Expression
Parameters:
context - supplies the context for evaluation
Returns:
a SequenceIterator that can be used to iterate over the result of the expression
Throws:
XPathException - if any dynamic error occurs evaluating the expression


Copyright (C) Michael H. Kay. All rights reserved.