com.saxonica.extfn
Class ExpressionFn

java.lang.Object
  extended by net.sf.saxon.functions.ExtensionFunctionDefinition
      extended by com.saxonica.extfn.Evaluate
          extended by com.saxonica.extfn.ExpressionFn
All Implemented Interfaces:
Serializable

public class ExpressionFn
extends Evaluate

This class implements the saxon:expression() extension function

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.saxonica.extfn.Evaluate
Evaluate.EvaluateCall, Evaluate.PreparedExpression
 
Constructor Summary
ExpressionFn(Configuration config)
           
 
Method Summary
 SequenceType[] getArgumentTypes()
          Get the required types for the arguments of this function, counting from zero
 StructuredQName getFunctionQName()
          Get the function name, as a QName
 int getMaximumNumberOfArguments()
          Get the maximum number of arguments allowed by the function
 int getMinimumNumberOfArguments()
          Get the minimum number of arguments required by the function
 SequenceType getResultType(SequenceType[] suppliedArgumentTypes)
          Get the type of the result of the function
 ExtensionFunctionCall makeCallExpression()
          Create a call on this function.
 
Methods inherited from class com.saxonica.extfn.Evaluate
dependsOnFocus
 
Methods inherited from class net.sf.saxon.functions.ExtensionFunctionDefinition
getCompilerForJava, hasSideEffects, trustResultType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpressionFn

public ExpressionFn(Configuration config)
Method Detail

getFunctionQName

public StructuredQName getFunctionQName()
Get the function name, as a QName

Overrides:
getFunctionQName in class Evaluate
Returns:
the QName of the function

getMinimumNumberOfArguments

public int getMinimumNumberOfArguments()
Get the minimum number of arguments required by the function

Overrides:
getMinimumNumberOfArguments in class Evaluate
Returns:
the minimum number of arguments that must be supplied in a call to this function

getMaximumNumberOfArguments

public int getMaximumNumberOfArguments()
Get the maximum number of arguments allowed by the function

Overrides:
getMaximumNumberOfArguments in class Evaluate
Returns:
the maximum number of arguments that may be supplied in a call to this function

getArgumentTypes

public SequenceType[] getArgumentTypes()
Get the required types for the arguments of this function, counting from zero

Overrides:
getArgumentTypes in class Evaluate
Returns:
the required types of the argument, as defined by the function signature. Normally this should be an array of size getMaximumNumberOfArguments(); however for functions that allow a variable number of arguments, the array can be smaller than this, with the last entry in the array providing the required type for all the remaining arguments.

getResultType

public SequenceType getResultType(SequenceType[] suppliedArgumentTypes)
Get the type of the result of the function

Overrides:
getResultType in class Evaluate
Parameters:
suppliedArgumentTypes - the static types of the arguments to the function. This is provided so that a more precise result type can be returned in the common case where the type of the result depends on the type of the first argument. The value will be null if the function call has no arguments.
Returns:
the return type of the function, as defined by its function signature

makeCallExpression

public ExtensionFunctionCall makeCallExpression()
Create a call on this function. This method is called by the compiler when it identifies a function call that calls this function.

Overrides:
makeCallExpression in class Evaluate


Copyright (c) Saxonica Limited. All rights reserved.