public abstract class SubsequenceTestFn extends ExtensionFunctionDefinition
Modifier and Type | Class and Description |
---|---|
static class |
SubsequenceTestFn.SubsequenceAfterFn
Implement saxon:subsequence-after
|
static class |
SubsequenceTestFn.SubsequenceBeforeFn
Implement saxon:subsequence-before
|
static class |
SubsequenceTestFn.SubsequenceFromFn
Implement saxon:subsequence-from
|
static class |
SubsequenceTestFn.SubsequenceUntilFn
Implement saxon:subsequence-until
|
Constructor and Description |
---|
SubsequenceTestFn() |
Modifier and Type | Method and Description |
---|---|
protected abstract SequenceIterator |
compute(SequenceIterator input,
FunctionItem test,
XPathContext context)
The function that does the work, which must be implemented in subclasses
|
SequenceType[] |
getArgumentTypes()
Get the required types for the arguments of this function.
|
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.
|
boolean |
trustResultType()
Ask whether the result actually returned by the function can be trusted,
or whether it should be checked against the declared type.
|
dependsOnFocus, getFunctionQName, hasSideEffects
public int getMinimumNumberOfArguments()
The default implementation returns the number of items in the result of calling
getArgumentTypes()
getMinimumNumberOfArguments
in class ExtensionFunctionDefinition
public int getMaximumNumberOfArguments()
The default implementation returns the value of getMinimumNumberOfArguments()
getMaximumNumberOfArguments
in class ExtensionFunctionDefinition
public boolean trustResultType()
trustResultType
in class ExtensionFunctionDefinition
public SequenceType[] getArgumentTypes()
This method must be implemented in all subtypes.
getArgumentTypes
in class ExtensionFunctionDefinition
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.public SequenceType getResultType(SequenceType[] suppliedArgumentTypes)
This method must be implemented in all subtypes.
getResultType
in class ExtensionFunctionDefinition
suppliedArgumentTypes
- the static types of the supplied 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 types of the arguments.protected abstract SequenceIterator compute(SequenceIterator input, FunctionItem test, XPathContext context) throws XPathException
input
- the input sequencetest
- the function to be applied to the items in the sequence, which takes
an item in the sequence as input and produces a boolean as its resultcontext
- the XPath dynamic contextXPathException
- if a dynamic error occurspublic ExtensionFunctionCall makeCallExpression()
makeCallExpression
in class ExtensionFunctionDefinition
Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.