net.sf.saxon.functions

Class IsWholeNumber

public class IsWholeNumber extends ExtensionFunctionDefinition

This class implements the saxon:is-whole-number() extension function, which is specially-recognized by the system because calls are generated by the optimizer.

The function signature is saxon:is-whole-number($arg as numeric?) as boolean

The result is true if $arg is not empty and is equal to some integer.

Method Summary
SequenceType[]getArgumentTypes()
Get the required types for the arguments of this function, counting from zero
ObjectgetCompilerForJava()
Return an object capable of compiling this IntegratedFunction call to Java source code.
StructuredQNamegetFunctionQName()
Get the function name, as a QName
intgetMaximumNumberOfArguments()
Get the maximum number of arguments allowed by the function
intgetMinimumNumberOfArguments()
Get the minimum number of arguments required by the function
SequenceTypegetResultType(SequenceType[] suppliedArgumentTypes)
Get the type of the result of the function
ExtensionFunctionCallmakeCallExpression()
Create a call on this function.

Method Detail

getArgumentTypes

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

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.

getCompilerForJava

public Object getCompilerForJava()
Return an object capable of compiling this IntegratedFunction call to Java source code. The returned object may be null, in which case Java code generation is not supported for this IntegratedFunction. If the returned object is not null, it must implement the interface com.saxonica.codegen.IntegratedFunctionCompiler. The default implementation returns null

Returns: an instance of com.saxonica.codegen.IntegratedFunctionCompiler that generates Java code to implement the call on this extension function

getFunctionQName

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

Returns: the QName of the function

getMaximumNumberOfArguments

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

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

getMinimumNumberOfArguments

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

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

getResultType

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

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.