|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--net.sf.saxon.instruct.UserFunction
This object represents the compiled form of a user-written function (the source can be either an XSLT stylesheet function or an XQuery function).
It is assumed that type-checking, of both the arguments and the results, has been handled at compile time. That is, the expression supplied as the body of the function must be wrapped in code to check or convert the result to the required type, and calls on the function must be wrapped at compile time to check or convert the supplied arguments.
Constructor Summary | |
UserFunction(Expression body)
|
Method Summary | |
Value |
call(Value[] actualArgs,
Controller controller)
Call this function. |
Value |
call(Value[] actualArgs,
Controller controller,
boolean evaluateTailCalls)
Call this function. |
int |
getColumnNumber()
|
java.lang.String |
getFunctionName()
Get the name of the function, for diagnostics |
java.lang.String |
getInstructionName()
Get the name of the instruction. |
int |
getLineNumber()
Get the line number of the instruction in the source stylesheet module. |
java.util.HashMap |
getProperties()
Get all the properties of the instruction. |
java.lang.Object |
getProperty(java.lang.String propertyName)
Get the value of a particular property of the instruction. |
java.lang.String |
getPublicId()
|
java.lang.String |
getSystemId()
Get the system identifier (URI) of the source stylesheet module containing the instruction. |
void |
setFunctionName(java.lang.String name)
|
void |
setLineNumber(int lineNumber)
|
void |
setMemoFunction(boolean isMemo)
|
void |
setSystemId(java.lang.String systemId)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public UserFunction(Expression body)
Method Detail |
public void setLineNumber(int lineNumber)
public void setSystemId(java.lang.String systemId)
public int getLineNumber()
InstructionInfo
getLineNumber
in interface InstructionInfo
public java.lang.String getSystemId()
InstructionInfo
getSystemId
in interface InstructionInfo
public int getColumnNumber()
getColumnNumber
in interface javax.xml.transform.SourceLocator
public java.lang.String getPublicId()
getPublicId
in interface javax.xml.transform.SourceLocator
public java.lang.String getInstructionName()
InstructionInfo
getInstructionName
in interface InstructionInfo
public java.lang.Object getProperty(java.lang.String propertyName)
InstructionInfo
getProperty
in interface InstructionInfo
propertyName
- The name of the required property
public java.util.HashMap getProperties()
InstructionInfo
getProperties
in interface InstructionInfo
public void setMemoFunction(boolean isMemo)
public void setFunctionName(java.lang.String name)
public java.lang.String getFunctionName()
CallableFunction
getFunctionName
in interface CallableFunction
public Value call(Value[] actualArgs, Controller controller, boolean evaluateTailCalls) throws javax.xml.transform.TransformerException
call
in interface CallableFunction
actualArgs
- the arguments supplied to the function. These must have the correct
types required by the function signature (it is the caller's responsibility to check this).
It is acceptable to supply a Closure
to represent a value whose
evaluation will be delayed until it is needed. The array must be the correct size to match
the number of arguments: again, it is the caller's responsibility to check this.controller
- This provides the run-time context for evaluating the function.evaluateTailCalls
- if true, then any function calls contained in the body of the function
are evaluated in the normal way, whether or not they are marked as tail calls. If the argument
is false, then tail calls are not evaluated, and instead a FunctionCallPackage is returned containing
the information needed to evaluate the function. The caller must then be prepared to deal with this
returned value by evaluating the packaged function call (which may return further packaged function
calls, and so on).
javax.xml.transform.TransformerException
public Value call(Value[] actualArgs, Controller controller) throws javax.xml.transform.TransformerException
actualArgs
- the arguments supplied to the function. These must have the correct
types required by the function signature (it is the caller's responsibility to check this).
It is acceptable to supply a Closure
to represent a value whose
evaluation will be delayed until it is needed. The array must be the correct size to match
the number of arguments: again, it is the caller's responsibility to check this.controller
- This provides the run-time context for evaluating the function. A Controller
may be obtained by calling XQueryExpression.getController()
. This may
be used for a series of calls on functions defined in the same module as the XQueryExpression.
javax.xml.transform.TransformerException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |