## 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
`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: