Package weka.core.pmml

# Class Function

java.lang.Object
weka.core.pmml.Function

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `BuiltInArithmetic`, `BuiltInMath`, `BuiltInString`, `DefineFunction`

public abstract class Function extends Object implements Serializable
Abstract superclass for PMML built-in and DefineFunctions.

Version:
  $Revision 1.0 $
Author:
  Mark Hall (mhall{[at]}pentaho{[dot]}com)
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Function()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Function`
  `getFunction(String name)`
  Get a built-in PMML Function.
  `static Function`
  `getFunction(String name, weka.core.pmml.TransformationDictionary transDict)`
  Get either a function.
  `String`
  `getName()`
  `abstract Attribute`
  `getOutputDef()`
  Get the structure of the result produced by this function.
  `abstract String[]`
  `getParameterNames()`
  Returns an array of the names of the parameters expected as input by this function.
  `abstract double`
  `getResult(double[] incoming)`
  Get the result of applying this function.
  `abstract void`
  `setParameterDefs(ArrayList<Attribute> paramDefs)`
  Set the structure of the parameters that are expected as input by this function.
  `String`
  `toString()`
  `String`
  `toString(String pad)`

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

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Function

    public Function()

- ## Method Details

  - ### getName

    public String getName()

  - ### getParameterNames

    public abstract String[] getParameterNames()
    Returns an array of the names of the parameters expected as input by this function. May return null if this function can take an unbounded number of parameters (i.e. min, max, etc.).
    Returns:
      an array of the parameter names or null if there are an unbounded number of parameters.

  - ### setParameterDefs

    public abstract void setParameterDefs(ArrayList<Attribute> paramDefs) throws Exception
    Set the structure of the parameters that are expected as input by this function. This must be called before getOutputDef() is called.
    Parameters:
      `paramDefs` - the structure of the input parameters
    Throws:
      `Exception` - if the number or types of parameters are not acceptable by this function

  - ### getOutputDef

    public abstract Attribute getOutputDef()
    Get the structure of the result produced by this function.
    Returns:
      the structure of the result produced by this function.

  - ### getResult

    public abstract double getResult(double[] incoming) throws Exception
    Get the result of applying this function.
    Parameters:
      `incoming` - the arguments to this function (supplied in order to match that of the parameter definitions
    Returns:
      the result of applying this function. When the optype is categorical or ordinal, an index into the values of the output definition is returned.
    Throws:
      `Exception` - if there is a problem computing the result of this function

  - ### getFunction

    public static Function getFunction(String name)
    Get a built-in PMML Function.
    Parameters:
      `name` - the name of the function to get.
    Returns:
      a built-in Function or null if the named function is not known/supported.

  - ### getFunction

    public static Function getFunction(String name, weka.core.pmml.TransformationDictionary transDict) throws Exception
    Get either a function. Built-in functions are queried first, and then DefineFunctions in the TransformationDictionary (if any).
    Parameters:
      `name` - the name of the function to get.
      `transDict` - the TransformationDictionary (may be null if there is no dictionary).
    Returns:
      the function
    Throws:
      `Exception` - if the named function is not known/supported.

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### toString

    public String toString(String pad)