org.jfree.report.expressions

## Class FormulaFunction

- java.lang.Object
- - org.jfree.report.expressions.AbstractExpression
  - - org.jfree.report.expressions.FormulaFunction

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Expression, Function

      public class FormulaFunction
      extends AbstractExpression
      implements Function

  Creation-Date: 04.11.2006, 19:24:04
  Author:
    Thomas Morgner
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FormulaFunction()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Function` | `advance()` When the advance method is called, the function is asked to perform the next step of its computation.
    `java.lang.Object` | `clone()` Clones the expression, expression should be reinitialized after the cloning.
    `java.lang.Object` | `computeValue()` Return the current expression value.
    `org.pentaho.reporting.libraries.formula.Formula` | `getCompiledFormula()` Returns the compiled formula.
    `java.lang.String` | `getFormula()`
    `java.lang.String` | `getFormulaExpression()`
    `java.lang.String` | `getFormulaNamespace()`
    `java.lang.String` | `getInitial()`
    `java.lang.String` | `getInitialExpression()`
    `java.lang.String` | `getInitialNamespace()`
    `void` | `setFormula(java.lang.String formula)`
    `void` | `setInitial(java.lang.String initial)`

    - ### Methods inherited from class org.jfree.report.expressions.AbstractExpression

      `getDataRow, getInstance, getName, getParentLocale, getReportConfiguration, getResourceBundleFactory, getRuntime, isDeepTraversing, isPrecompute, isPreserve, setDeepTraversing, setName, setPrecompute, setPreserve, setRuntime`

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

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

    - ### Methods inherited from interface org.jfree.report.expressions.Expression

      `getInstance, getName, isDeepTraversing, isPrecompute, isPreserve, setDeepTraversing, setName, setPrecompute, setPreserve, setRuntime`

- - ### Constructor Detail

    - #### FormulaFunction

          public FormulaFunction()

  - ### Method Detail

    - #### getInitial

          public java.lang.String getInitial()

    - #### getInitialExpression

          public java.lang.String getInitialExpression()

    - #### getInitialNamespace

          public java.lang.String getInitialNamespace()

    - #### setInitial

          public void setInitial(java.lang.String initial)

    - #### getFormula

          public java.lang.String getFormula()

    - #### getFormulaNamespace

          public java.lang.String getFormulaNamespace()

    - #### getFormulaExpression

          public java.lang.String getFormulaExpression()

    - #### setFormula

          public void setFormula(java.lang.String formula)

    - #### advance

          public Function advance()
                           throws DataSourceException

      When the advance method is called, the function is asked to perform the next step of its computation.

      The original function must not be altered during that step (or more correctly, calling advance on the original expression again must not return a different result).
      Specified by:
        `advance` in interface `Function`
      Returns:
        a copy of the function containing the new state.
      Throws:
        `DataSourceException`

    - #### computeValue

          public java.lang.Object computeValue()
                                        throws DataSourceException

      Return the current expression value.

      The value depends (obviously) on the expression implementation.

      Specified by:
        `computeValue` in interface `Expression`
      Returns:
        the value of the function.
      Throws:
        `DataSourceException`

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Clones the expression, expression should be reinitialized after the cloning.

      Expression maintain no state, cloning is done at the beginning of the report processing to disconnect the used expression from any other object space.

      Specified by:
        `clone` in interface `Expression`
      Overrides:
        `clone` in class `AbstractExpression`
      Returns:
        A clone of this expression.
      Throws:
        `java.lang.CloneNotSupportedException` - this should never happen.

    - #### getCompiledFormula

          public org.pentaho.reporting.libraries.formula.Formula getCompiledFormula()
                                                                             throws org.pentaho.reporting.libraries.formula.parser.ParseException

      Returns the compiled formula. The formula is not connected to a formula context.
      Returns:
        the formula.
      Throws:
        `org.pentaho.reporting.libraries.formula.parser.ParseException` - if the formula contains syntax errors.