net.sf.saxon.functions
Class StandardFunction

java.lang.Object
  extended by net.sf.saxon.functions.StandardFunction

public abstract class StandardFunction
extends Object

This class contains static data tables defining the properties of standard functions. "Standard functions" here means the XPath 2.0 functions, the XSLT 2.0 functions, and a few selected extension functions which need special recognition.


Nested Class Summary
static class StandardFunction.Entry
          An entry in the table describing the properties of a function
 
Field Summary
static int CORE
          Categories of functions, bit significant
static Value EMPTY
           
static int INTERNAL
           
protected static ItemType SAME_AS_FIRST_ARGUMENT
           
static int USE_WHEN
           
static int XPATH30
           
static int XQUPDATE
           
static int XSLT
           
static int XSLT30
           
 
Method Summary
static void arg(StandardFunction.Entry e, int a, ItemType type, int cardinality, Value resultIfEmpty)
          Add information to a function entry about the argument types of the function
static StandardFunction.Entry getFunction(String name, int arity)
          Get the table entry for the function with a given name
static StandardFunction.Entry makeEntry(String name, Class implementationClass, int opcode, int minArguments, int maxArguments, ItemType itemType, int cardinality, int applicability)
          Make a table entry describing the signature of a function, with a reference to the implementation class.
static StandardFunction.Entry register(String name, Class implementationClass, int opcode, int minArguments, int maxArguments, ItemType itemType, int cardinality, int applicability)
          Register a system function in the table of function details.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY

public static Value EMPTY

CORE

public static final int CORE
Categories of functions, bit significant

See Also:
Constant Field Values

XSLT

public static final int XSLT
See Also:
Constant Field Values

USE_WHEN

public static final int USE_WHEN
See Also:
Constant Field Values

XQUPDATE

public static final int XQUPDATE
See Also:
Constant Field Values

XPATH30

public static final int XPATH30
See Also:
Constant Field Values

INTERNAL

public static final int INTERNAL
See Also:
Constant Field Values

XSLT30

public static final int XSLT30
See Also:
Constant Field Values

SAME_AS_FIRST_ARGUMENT

protected static ItemType SAME_AS_FIRST_ARGUMENT
Method Detail

register

public static StandardFunction.Entry register(String name,
                                              Class implementationClass,
                                              int opcode,
                                              int minArguments,
                                              int maxArguments,
                                              ItemType itemType,
                                              int cardinality,
                                              int applicability)
Register a system function in the table of function details.

Parameters:
name - the function name
implementationClass - the class used to implement the function
opcode - identifies the function when a single class implements several functions
minArguments - the minimum number of arguments required
maxArguments - the maximum number of arguments allowed
itemType - the item type of the result of the function
cardinality - the cardinality of the result of the function
applicability -
Returns:
the entry describing the function. The entry is incomplete, it does not yet contain information about the function arguments.

makeEntry

public static StandardFunction.Entry makeEntry(String name,
                                               Class implementationClass,
                                               int opcode,
                                               int minArguments,
                                               int maxArguments,
                                               ItemType itemType,
                                               int cardinality,
                                               int applicability)
Make a table entry describing the signature of a function, with a reference to the implementation class.

Parameters:
name - the function name
implementationClass - the class used to implement the function
opcode - identifies the function when a single class implements several functions
minArguments - the minimum number of arguments required
maxArguments - the maximum number of arguments allowed
itemType - the item type of the result of the function
cardinality - the cardinality of the result of the function
Returns:
the entry describing the function. The entry is incomplete, it does not yet contain information about the function arguments.

arg

public static void arg(StandardFunction.Entry e,
                       int a,
                       ItemType type,
                       int cardinality,
                       Value resultIfEmpty)
Add information to a function entry about the argument types of the function

Parameters:
e - the entry for the function
a - the position of the argument, counting from zero
type - the item type of the argument
cardinality - the cardinality of the argument
resultIfEmpty - the value returned by the function if an empty sequence appears as the value of this argument, in the case when this result is unaffected by any other arguments. Supply null if this does not apply.

getFunction

public static StandardFunction.Entry getFunction(String name,
                                                 int arity)
Get the table entry for the function with a given name

Parameters:
name - the name of the function. This may be an unprefixed local-name for functions in the system namespace, or may use the conventional prefix "saxon:" in the case of Saxon extension functions that are specially recognized
Returns:
if the function name is known, an Entry containing information about the function. Otherwise, null


Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.