| java.lang.Object net.sf.saxon.query.XQueryFunctionLibrary
XQueryFunctionLibrary | public class XQueryFunctionLibrary implements FunctionLibrary,XQueryFunctionBinder(Code) | | An XQueryFunctionLibrary is a function library containing all the user-defined functions available for use within a
particular XQuery module: that is, the functions declared in that module, and the functions imported from other
modules. It also contains (transiently during compilation) a list of function calls within the module that have not
yet been bound to a specific function declaration.
|
Method Summary | |
public Expression | bind(int nameCode, String uri, String local, Expression[] arguments) Identify a (namespace-prefixed) function appearing in the expression. | public FunctionLibrary | copy() This method creates a copy of a FunctionLibrary: if the original FunctionLibrary allows
new functions to be added, then additions to this copy will not affect the original, or
vice versa.
a copy of this function library. | public void | declareFunction(XQueryFunction function) | public void | explainGlobalFunctions() | protected void | fixupGlobalFunctions(StaticQueryContext env) Fixup all references to global functions. | public Configuration | getConfiguration() | public XQueryFunction | getDeclaration(int nameCode, String uri, String local, Expression[] staticArgs) | public Iterator | getFunctionDefinitions() Get an iterator over the Functions defined in this module
an Iterator, whose items are XQueryFunction objects. | public UserFunction | getUserDefinedFunction(String uri, String localName, int arity) Get the function with a given name and arity. | public boolean | isAvailable(int fingerprint, String uri, String local, int arity) Test whether a function with a given name and arity is available. | public void | setConfiguration(Configuration config) |
XQueryFunctionLibrary | public XQueryFunctionLibrary(Configuration config)(Code) | | Create an XQueryFunctionLibrary
|
bind | public Expression bind(int nameCode, String uri, String local, Expression[] arguments) throws XPathException(Code) | | Identify a (namespace-prefixed) function appearing in the expression. This
method is called by the XQuery parser to resolve function calls found within
the query.
Note that a function call may appear earlier in the query than the definition
of the function to which it is bound. Unlike XSLT, we cannot search forwards to
find the function definition. Binding of function calls is therefore a two-stage
process; at the time the function call is parsed, we simply register it as
pending; subsequently at the end of query parsing all the pending function
calls are resolved. Another consequence of this is that we cannot tell at the time
a function call is parsed whether it is a call to an internal (XSLT or XQuery)
function or to an extension function written in Java.
an Expression representing the function call. This will normally bea FunctionCall, but it may be rewritten as some other expression. throws: XPathException - if the function call is invalid, either because it isan unprefixed call to a non-system function, or because it is calling a systemfunction that is available in XSLT only. A prefixed function call that cannotbe recognized at this stage is assumed to be a forwards reference, and is boundlater when bindUnboundFunctionCalls() is called. |
copy | public FunctionLibrary copy()(Code) | | This method creates a copy of a FunctionLibrary: if the original FunctionLibrary allows
new functions to be added, then additions to this copy will not affect the original, or
vice versa.
a copy of this function library. This must be an instance of the original class. |
explainGlobalFunctions | public void explainGlobalFunctions() throws XPathException(Code) | | Output "explain" information about each declared function
|
fixupGlobalFunctions | protected void fixupGlobalFunctions(StaticQueryContext env) throws XPathException(Code) | | Fixup all references to global functions. This method is called
on completion of query parsing. Each XQueryFunction is required to
bind all references to that function to the object representing the run-time
executable code of the function.
This method is for internal use.
|
getDeclaration | public XQueryFunction getDeclaration(int nameCode, String uri, String local, Expression[] staticArgs)(Code) | | Get the function declaration corresponding to a given function name and arity
the XQueryFunction if there is one, or null if not. |
getFunctionDefinitions | public Iterator getFunctionDefinitions()(Code) | | Get an iterator over the Functions defined in this module
an Iterator, whose items are XQueryFunction objects. It returnsall function known to this module including those imported from elsewhere; theycan be distinguished by their namespace. |
getUserDefinedFunction | public UserFunction getUserDefinedFunction(String uri, String localName, int arity)(Code) | | Get the function with a given name and arity. This method is provided so that XQuery functions
can be called directly from a Java application. Note that there is no type checking or conversion
of arguments when this is done: the arguments must be provided in exactly the form that the function
signature declares them.
Parameters: uri - the uri of the function name Parameters: localName - the local part of the function name Parameters: arity - the number of arguments. |
isAvailable | public boolean isAvailable(int fingerprint, String uri, String local, int arity)(Code) | | Test whether a function with a given name and arity is available. This supports
the function-available() function in XSLT. This method may be called either at compile time
or at run time.
Parameters: uri - The URI of the function name Parameters: local - The local part of the function name Parameters: arity - The number of arguments. This is set to -1 in the case of the single-argumentfunction-available() function; in this case the method should return true if there is somematching extension function, regardless of its arity. |
setConfiguration | public void setConfiguration(Configuration config)(Code) | | Set the Configuration options
|
|
|