Function
Date: 2016-07-03

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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Expression[]` | `argument`

    - ### Fields inherited from class com.icl.saxon.expr.Expression

      `staticContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Function()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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`