net.sf.saxon.functions
Class SystemFunctionLibrary
java.lang.Object
net.sf.saxon.functions.SystemFunctionLibrary
- All Implemented Interfaces:
- FunctionLibrary, java.io.Serializable
- public class SystemFunctionLibrary
- extends java.lang.Object
- implements FunctionLibrary
The SystemFunctionLibrary represents the collection of functions in the fn: namespace. That is, the
functions defined in the "Functions and Operators" specification, optionally augmented by the additional
functions defined in XSLT.
- See Also:
- Serialized Form
Method Summary |
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 a system 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 |
XPATH_ONLY
public static final int XPATH_ONLY
- See Also:
- Constant Field Values
FULL_XSLT
public static final int FULL_XSLT
- See Also:
- Constant Field Values
USE_WHEN
public static final int USE_WHEN
- See Also:
- Constant Field Values
SystemFunctionLibrary
public SystemFunctionLibrary(int functionSet)
- Create a SystemFunctionLibrary
- Parameters:
functionSet
- determines the set of functions allowed. One of
XPATH_ONLY
, FULL_XSLT
, USE_WHEN
isAvailable
public boolean isAvailable(int fingerprint,
java.lang.String uri,
java.lang.String local,
int arity)
- Test whether a system 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; or if this function library "owns" the namespace containing
the function call, but no function was found.