Package org.pentaho.reporting.libraries.formula.function

## Interface FunctionDescription

- All Superinterfaces:
    `java.io.Serializable`
  All Known Implementing Classes:
    `AbsFunctionDescription`, `AbstractFunctionDescription`, `AcosFunctionDescription`, `AcoshFunctionDescription`, `AndFunctionDescription`, `AsinFunctionDescription`, `Atan2FunctionDescription`, `AtanFunctionDescription`, `AverageAFunctionDescription`, `AverageFunctionDescription`, `ChooseFunctionDescription`, `CosFunctionDescription`, `CountAFunctionDescription`, `CountBlankFunctionDescription`, `CountFunctionDescription`, `CsvArrayFunctionDescription`, `CsvTextFunctionDescription`, `DateDifFunctionDescription`, `DateFunctionDescription`, `DateValueFunctionDescription`, `DayFunctionDescription`, `DaysFunctionDescription`, `DefaultFunctionDescription`, `EvenFunctionDescription`, `ExactFunctionDescription`, `ExpFunctionDescription`, `FalseFunctionDescription`, `FindFunctionDescription`, `HasChangedFunctionDescription`, `HourFunctionDescription`, `IfFunctionDescription`, `IfNaFunctionDescription`, `IndexFunctionDescription`, `IntFunctionDescription`, `IsBlankFunctionDescription`, `IsErrFunctionDescription`, `IsErrorFunctionDescription`, `IsEvenFunctionDescription`, `IsLogicalFunctionDescription`, `IsNaFunctionDescription`, `IsNonTextFunctionDescription`, `IsNumberFunctionDescription`, `IsOddFunctionDescription`, `IsRefFunctionDescription`, `IsTextFunctionDescription`, `LeftFunctionDescription`, `LenFunctionDescription`, `LnFunctionDescription`, `Log10FunctionDescription`, `LogFunctionDescription`, `LowerFunctionDescription`, `MaxAFunctionDescription`, `MaxFunctionDescription`, `MessageFunctionDescription`, `MidFunctionDescription`, `MinAFunctionDescription`, `MinFunctionDescription`, `MinuteFunctionDescription`, `ModFunctionDescription`, `MonthFunctionDescription`, `NaFunctionDescription`, `NormalizeArrayFunctionDescription`, `NotFunctionDescription`, `NowFunctionDescription`, `NullFunctionDescription`, `OddFunctionDescription`, `OrFunctionDescription`, `ParseDateFunctionDescription`, `PiFunctionDescription`, `PowerFunctionDescription`, `ReplaceFunctionDescription`, `ReptFunctionDescription`, `RightFunctionDescription`, `SecondFunctionDescription`, `SinFunctionDescription`, `SqrtFunctionDescription`, `SubstituteFunctionDescription`, `SumAFunctionDescription`, `SumFunctionDescription`, `TextFunctionDescription`, `TFunctionDescription`, `TimeFunctionDescription`, `TimeValueFunctionDescription`, `TodayFunctionDescription`, `TrimFunctionDescription`, `TrueFunctionDescription`, `UnicharFunctionDescription`, `UnicodeFunctionDescription`, `UpperFunctionDescription`, `URLEncodeFunctionDescription`, `ValueFunctionDescription`, `VarFunctionDescription`, `WeekDayFunctionDescription`, `XorFunctionDescription`, `YearFunctionDescription`

      public interface FunctionDescription
      extends java.io.Serializable

  A static definition of the function's parameters, return values etc. This is a support class with emphasis on GUI tools. However, the parameter declarations are also used when filling in the parameter values. Functions have a defined set of known parameters and can have a unlimited number of optional parameters. If a function declares at least one parameter and declares that its parameter list is infinite, then the last parameter type is used on all remaining parameters.
  Author:
    Thomas Morgner

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getCanonicalName()` |
    `FunctionCategory` | `getCategory()` |
    `java.lang.Object` | `getDefaultValue​(int position)` | Returns the default value for an optional parameter.
    `java.lang.String` | `getDescription​(java.util.Locale locale)` |
    `java.lang.String` | `getDisplayName​(java.util.Locale locale)` |
    `int` | `getParameterCount()` |
    `java.lang.String` | `getParameterDescription​(int position, java.util.Locale locale)` |
    `java.lang.String` | `getParameterDisplayName​(int position, java.util.Locale locale)` |
    `Type` | `getParameterType​(int position)` | Returns the parameter type at the given position using the function metadata.
    `Type` | `getValueType()` |
    `boolean` | `isInfiniteParameterCount()` |
    `boolean` | `isParameterMandatory​(int position)` | Defines, whether the parameter at the given position is mandatory.
    `boolean` | `isVolatile()` |

- - ### Method Detail

    - #### getCanonicalName

          java.lang.String getCanonicalName()

    - #### getDisplayName

          java.lang.String getDisplayName​(java.util.Locale locale)

    - #### getDescription

          java.lang.String getDescription​(java.util.Locale locale)

    - #### isVolatile

          boolean isVolatile()

    - #### getValueType

          Type getValueType()

    - #### getCategory

          FunctionCategory getCategory()

    - #### getParameterCount

          int getParameterCount()

    - #### isInfiniteParameterCount

          boolean isInfiniteParameterCount()

    - #### getParameterType

          Type getParameterType​(int position)

      Returns the parameter type at the given position using the function metadata. The first parameter is at the position 0;
      Parameters:
        `position` - The parameter index.
      Returns:
        The parameter type.

    - #### getParameterDisplayName

          java.lang.String getParameterDisplayName​(int position,
                                                   java.util.Locale locale)

    - #### getParameterDescription

          java.lang.String getParameterDescription​(int position,
                                                   java.util.Locale locale)

    - #### isParameterMandatory

          boolean isParameterMandatory​(int position)

      Defines, whether the parameter at the given position is mandatory. A mandatory parameter must be filled in, while optional parameters need not to be filled in.
      Returns:

    - #### getDefaultValue

          java.lang.Object getDefaultValue​(int position)

      Returns the default value for an optional parameter. If the value returned here is null, then this either means, that the parameter is mandatory or that the default value is computed by the expression itself.
      Parameters:
        `position` -
      Returns: