## net.sf.saxon.functions
Class StandardFunction

    java.lang.Object
      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.