net.sf.saxon.functions
Class FunctionLibraryList
java.lang.Object
|
+--net.sf.saxon.functions.FunctionLibraryList
- All Implemented Interfaces:
- FunctionLibrary, java.io.Serializable
- public class FunctionLibraryList
- extends java.lang.Object
- implements FunctionLibrary
A FunctionLibraryList is a list of FunctionLibraries. It is also a FunctionLibrary in its own right.
When required, it searches the list of FunctionLibraries to find the required function.
- See Also:
- Serialized Form
Method Summary |
void |
addFunctionLibrary(FunctionLibrary lib)
Add a new FunctionLibrary to the list of FunctionLibraries in this FunctionLibraryList. |
Expression |
bind(int nameCode,
java.lang.String uri,
java.lang.String local,
Expression[] staticArgs)
Bind an extension function, given the URI and local parts of the function name,
and the list of expressions supplied as arguments. |
boolean |
isAvailable(int fingerprint,
java.lang.String uri,
java.lang.String local,
int arity)
Test whether an extension function with a given name and arity is available. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
libraryList
public java.util.List libraryList
FunctionLibraryList
public FunctionLibraryList()
addFunctionLibrary
public void addFunctionLibrary(FunctionLibrary lib)
- Add a new FunctionLibrary to the list of FunctionLibraries in this FunctionLibraryList. Note
that libraries are searched in the order they are added to the list.
isAvailable
public boolean isAvailable(int fingerprint,
java.lang.String uri,
java.lang.String local,
int arity)
- Test whether an extension 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.
- Specified by:
isAvailable
in interface FunctionLibrary
- Parameters:
uri
- The URI of the function namelocal
- The local part of the function namearity
- The number of arguments. This is set to -1 in the case of the single-argument
function-available() function; in this case the method should return true if there is some
matching extension function, regardless of its arity.fingerprint
- The namepool fingerprint of the function name. This must match the
uri and localName; the information is provided redundantly to avoid repeated lookups in the name pool.
bind
public Expression bind(int nameCode,
java.lang.String uri,
java.lang.String local,
Expression[] staticArgs)
throws XPathException
- Bind an extension function, given the URI and local parts of the function name,
and the list of expressions supplied as arguments. This method is called at compile
time.
- Specified by:
bind
in interface FunctionLibrary
- Parameters:
uri
- The URI of the function namelocal
- The local part of the function namestaticArgs
- The expressions supplied statically in the function call. The intention is
that the static type of the arguments (obtainable via getItemType() and getCardinality() may
be used as part of the binding algorithm.nameCode
- The namepool nameCode of the function name. The uri and local name are also
supplied (redundantly) to avoid fetching them from the name pool.
- Returns:
- An object representing the extension function to be called, if one is found;
null if no extension function was found matching the required name and arity.
- Throws:
XPathException
- if a function is found with the required name and arity, but
the implementation of the function cannot be loaded or used; or if an error occurs
while searching for the function.