Class ItemMaxFunction

  • All Implemented Interfaces:
    Serializable, Cloneable, EventListener, ReportListener, AggregationFunction, Expression, FieldAggregationFunction, Function

    public class ItemMaxFunction
    extends AbstractFunction
    implements FieldAggregationFunction
    A report function that calculates the maximum value of one field (column) from the data-row.

    The function can be used in two ways:

    • to calculate a maximum value for the entire report;
    • to calculate a maximum value within a particular group;
    This function expects its input values to be either java.lang.Number instances or Strings that can be parsed to java.lang.Number instances using a java.text.DecimalFormat.

    The function undestands two parameters, the field parameter is required and denotes the name of an ItemBand-field which gets summed up.

    The parameter group denotes the name of a group. When this group is started, the counter gets reseted to null.

    Author:
    Thomas Morgner
    See Also:
    Serialized Form
    • Constructor Detail

      • ItemMaxFunction

        public ItemMaxFunction()
        Constructs an unnamed function. Make sure to set a Name or function initialisation will fail.
      • ItemMaxFunction

        public ItemMaxFunction​(String name)
        Constructs a named function.

        The field must be defined before using the function.

        Parameters:
        name - The function name.
    • Method Detail

      • clear

        protected void clear()
      • groupStarted

        public void groupStarted​(ReportEvent event)
        Receives notification that a new group is about to start. If this is the group defined for the function, then the maximum value is reset to zero.
        Specified by:
        groupStarted in interface ReportListener
        Overrides:
        groupStarted in class AbstractFunction
        Parameters:
        event - Information about the event.
      • setGroup

        public void setGroup​(String name)
        Sets the group name.

        If a group is defined, the maximum value is reset to zero at the start of every instance of this group.

        Specified by:
        setGroup in interface AggregationFunction
        Parameters:
        name - The group name (null permitted).
      • getField

        public String getField()
        Returns the field used by the function. The field name corresponds to a column name in the report's data-row.
        Specified by:
        getField in interface FieldAggregationFunction
        Returns:
        The field name.
      • setField

        public void setField​(String field)
        Sets the field name for the function. The field name corresponds to a column name in the report's data-row.
        Specified by:
        setField in interface FieldAggregationFunction
        Parameters:
        field - the field name.
      • itemsAdvanced

        public void itemsAdvanced​(ReportEvent event)
        Receives notification that a row of data is being processed. Reads the data from the field defined for this function and performs the maximum value comparison with its old value.
        Specified by:
        itemsAdvanced in interface ReportListener
        Overrides:
        itemsAdvanced in class AbstractFunction
        Parameters:
        event - Information about the event.
      • getValue

        public Object getValue()
        Returns the function value, in this case the running total of a specific column in the report's data-set.
        Specified by:
        getValue in interface Expression
        Returns:
        The function value.
      • getInstance

        public Expression getInstance()
        Return a completly separated copy of this function. The copy does no longer share any changeable objects with the original function.
        Specified by:
        getInstance in interface Expression
        Overrides:
        getInstance in class AbstractExpression
        Returns:
        a copy of this function.
      • clone

        public Object clone()
        Description copied from class: AbstractExpression
        Clones the expression. The expression should be reinitialized after the cloning.

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

        Specified by:
        clone in interface Expression
        Overrides:
        clone in class AbstractExpression
        Returns:
        a clone of this expression.