## com.icl.saxon.expr
Class Function

    java.lang.Object
      com.icl.saxon.expr.Expression
          com.icl.saxon.expr.Function

Direct Known Subclasses:
  BooleanFn, Ceiling, Concat, Contains, Count, Current, Document, ElementAvailable, Floor, FormatNumber, FunctionAvailable, FunctionProxy, GenerateId, Id, Key, Lang, Last, LocalName, NameFn, NamespaceURI, NormalizeSpace, Not, NumberFn, Position, Round, StartsWith, StringFn, StringLength, StyleSheetFunctionCall, Substring, SubstringAfter, SubstringBefore, Sum, SystemProperty, Translate, UnparsedEntityURI

public abstract class Function
extends Expression

Abstract superclass for system-defined and user-defined functions

Field Summary
`protected Expression[]` `argument`

Fields inherited from class com.icl.saxon.expr.Expression
`staticContext`

Constructor Summary
`Function()`

Method Summary
`void` `addArgument(Expression expr)` Method to add an argument during function definition.
`protected int` `checkArgumentCount(int min, int max)` Check number of arguments.
`void` `display(int level)` Diagnostic print of expression structure
`abstract java.lang.String` `getName()` Get the name of the function.
`int` `getNumberOfArguments()` Determine the number of actual arguments supplied in the function call

Methods inherited from class com.icl.saxon.expr.Expression
`containsReferences, enumerate, evaluate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, evaluateAsString, getDataType, getDependencies, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, reduce, setStaticContext, simplify, usesCurrent`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### argument

    protected Expression[] argument

Constructor Detail

### Function

    public Function()

Method Detail

### addArgument

    public void addArgument(Expression expr)

  Method to add an argument during function definition.

### getNumberOfArguments

    public int getNumberOfArguments()

  Determine the number of actual arguments supplied in the function call

### getName

    public abstract java.lang.String getName()

  Get the name of the function. This method must be implemented in all subclasses.

  Returns:
    the name of the function, as used in XSL expressions, but excluding its namespace prefix

### checkArgumentCount

    protected int checkArgumentCount(int min,
                                     int max)
                              throws XPathException

  Check number of arguments.
  A convenience routine for use in subclasses.

  Parameters:
    `min` - the minimum number of arguments allowed
    `max` - the maximum number of arguments allowed
  Returns:
    the actual number of arguments
  Throws:
    `XPathException` - if the number of arguments is out of range

### display

    public void display(int level)

  Diagnostic print of expression structure

  Specified by:
    `display` in class `Expression`