## org.jfree.report.expressions
Interface Function

All Superinterfaces:
  java.lang.Cloneable, Expression, java.io.Serializable

All Known Implementing Classes:
  FormulaFunction

    public interface Function

extends Expression

The interface for report functions. A report function separates the business logic from presentation of the result.

Since JFreeReport 0.9 functions are considered immutable. During the advancement process, the function returns a new instance with the updated state.

Author:
  Thomas Morgner

Method Summary
`Function` `advance()` When the advance method is called, the function is asked to perform the next step of its computation.

Methods inherited from interface org.jfree.report.expressions.Expression
`clone, computeValue, getInstance, getName, isDeepTraversing, isPrecompute, isPreserve, setDeepTraversing, setName, setPrecompute, setPreserve, setRuntime`

Method Detail

### advance

    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).

  Returns:
    a copy of the function containing the new state.
  Throws:
    `DataSourceException`