com.saxonica.functions.extfn

## Class SendMail

- java.lang.Object
- - net.sf.saxon.lib.ExtensionFunctionDefinition
  - - com.saxonica.functions.extfn.SendMail

- All Implemented Interfaces:
    Serializable

      public class SendMail
      extends ExtensionFunctionDefinition

  This class implements the extension function saxon:send-mail(). This function provides the functionality to construct and send email messages.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SendMail()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `SequenceType[]` | `getArgumentTypes()` Get the required types for the arguments of this function, counting from zero
    `StructuredQName` | `getFunctionQName()` Get the function name, as a QName
    `int` | `getMaximumNumberOfArguments()` Get the maximum number of arguments allowed by the function
    `int` | `getMinimumNumberOfArguments()` Get the minimum number of arguments required by the function
    `SequenceType` | `getResultType(SequenceType[] suppliedArgumentTypes)` Get the type of the result of the function
    `boolean` | `hasSideEffects()` Ask whether the function has side-effects.
    `ExtensionFunctionCall` | `makeCallExpression()` Create a call on this function.

    - ### Methods inherited from class net.sf.saxon.lib.ExtensionFunctionDefinition

      `dependsOnFocus, trustResultType`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SendMail

          public SendMail()

  - ### Method Detail

    - #### getFunctionQName

          public StructuredQName getFunctionQName()

      Get the function name, as a QName
      Specified by:
        `getFunctionQName` in class `ExtensionFunctionDefinition`
      Returns:
        the QName of the function

    - #### getMinimumNumberOfArguments

          public int getMinimumNumberOfArguments()

      Get the minimum number of arguments required by the function
      Overrides:
        `getMinimumNumberOfArguments` in class `ExtensionFunctionDefinition`
      Returns:
        the minimum number of arguments that must be supplied in a call to this function

    - #### getMaximumNumberOfArguments

          public int getMaximumNumberOfArguments()

      Get the maximum number of arguments allowed by the function
      Overrides:
        `getMaximumNumberOfArguments` in class `ExtensionFunctionDefinition`
      Returns:
        the maximum number of arguments that may be supplied in a call to this function

    - #### getArgumentTypes

          public SequenceType[] getArgumentTypes()

      Get the required types for the arguments of this function, counting from zero
      Specified by:
        `getArgumentTypes` in class `ExtensionFunctionDefinition`
      Returns:
        the required types of the argument, as defined by the function signature. Normally this should be an array of size `getMaximumNumberOfArguments()`; however for functions that allow a variable number of arguments, the array can be smaller than this, with the last entry in the array providing the required type for all the remaining arguments.

    - #### getResultType

          public SequenceType getResultType(SequenceType[] suppliedArgumentTypes)

      Description copied from class: `ExtensionFunctionDefinition`
      Get the type of the result of the function

      This method must be implemented in all subtypes.

      Specified by:
        `getResultType` in class `ExtensionFunctionDefinition`
      Parameters:
        `suppliedArgumentTypes` - the static types of the supplied arguments to the function. This is provided so that a more precise result type can be returned in the common case where the type of the result depends on the types of the arguments.
      Returns:
        the return type of the function, as defined by its function signature

    - #### hasSideEffects

          public boolean hasSideEffects()

      Ask whether the function has side-effects. If the function does have side-effects, the optimizer will be less aggressive in moving or removing calls to the function. However, calls on functions with side-effects can never be guaranteed.
      Overrides:
        `hasSideEffects` in class `ExtensionFunctionDefinition`
      Returns:
        true if the function has side-effects (including creation of new nodes, if the identity of those nodes is significant). The default implementation returns false.

    - #### makeCallExpression

          public ExtensionFunctionCall makeCallExpression()

      Create a call on this function. This method is called by the compiler when it identifies a function call that calls this function.
      Specified by:
        `makeCallExpression` in class `ExtensionFunctionDefinition`
      Returns:
        an expression representing a call of this extension function

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