org.pentaho.reporting.engine.classic.core.function
Class GroupCountFunction

java.lang.Object
  extended by org.pentaho.reporting.engine.classic.core.function.AbstractExpression
      extended by org.pentaho.reporting.engine.classic.core.function.AbstractFunction
          extended by org.pentaho.reporting.engine.classic.core.function.GroupCountFunction
All Implemented Interfaces:
Serializable, Cloneable, EventListener, ReportListener, Expression, Function
Direct Known Subclasses:
TotalGroupCountFunction

public class GroupCountFunction
extends AbstractFunction

A report function that counts groups in a report. If a null-groupname is given, all groups are counted.

The group to be counted can be defined using the property "group". An optional container group can be defined using the property "parent-group". When the group start event of that group is encountered, the counter will be reset to '0'.

If the group property is not set, all group starts get counted.

Author:
David Gilbert
See Also:
Serialized Form

Constructor Summary
GroupCountFunction()
          Default constructor.
GroupCountFunction(String name, String group)
          Constructs a report function for counting groups.
 
Method Summary
 String getGroup()
          Returns the name of the group to be counted.
 String getParentGroup()
          Returns the name of the group on which to reset the counter.
 Object getValue()
          Returns the number of groups processed so far (including the current group).
 void groupStarted(ReportEvent event)
          Receives notification that a new group is about to start.
 void reportInitialized(ReportEvent event)
          Receives notification that a new report is about to start.
 void setGroup(String group)
          defines the name of the group to be counted.
 void setParentGroup(String group)
          defines the name of the group on which to reset the counter.
 
Methods inherited from class org.pentaho.reporting.engine.classic.core.function.AbstractFunction
groupFinished, itemsAdvanced, itemsFinished, itemsStarted, reportDone, reportFinished, reportStarted
 
Methods inherited from class org.pentaho.reporting.engine.classic.core.function.AbstractExpression
clone, getDataRow, getDependencyLevel, getInstance, getName, getReportConfiguration, getResourceBundleFactory, getRuntime, isActive, isDeepTraversing, isPreserve, setActive, setDependencyLevel, setName, setPreserve, setRuntime
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.pentaho.reporting.engine.classic.core.function.Expression
clone, getDataRow, getDependencyLevel, getInstance, getName, getReportConfiguration, getResourceBundleFactory, getRuntime, isActive, isDeepTraversing, isPreserve, setDependencyLevel, setName, setRuntime
 

Constructor Detail

GroupCountFunction

public GroupCountFunction()
Default constructor.


GroupCountFunction

public GroupCountFunction(String name,
                          String group)
Constructs a report function for counting groups.

Parameters:
name - The function name.
group - The group name.
Throws:
NullPointerException - if the given name is null
Method Detail

getParentGroup

public String getParentGroup()
Returns the name of the group on which to reset the counter.

Returns:
the name of the group or null, if all groups are counted

setParentGroup

public void setParentGroup(String group)
defines the name of the group on which to reset the counter. If the name is null, all groups are counted.

Parameters:
group - the name of the group to be counted.

getGroup

public String getGroup()
Returns the name of the group to be counted.

Returns:
the name of the group or null, if all groups are counted

setGroup

public void setGroup(String group)
defines the name of the group to be counted. If the name is null, all groups are counted.

Parameters:
group - the name of the group to be counted.

reportInitialized

public void reportInitialized(ReportEvent event)
Receives notification that a new report is about to start. Resets the count.

Specified by:
reportInitialized in interface ReportListener
Overrides:
reportInitialized in class AbstractFunction
Parameters:
event - the current report event received.

groupStarted

public void groupStarted(ReportEvent event)
Receives notification that a new group is about to start. Increases the count if all groups are counted or the name defines the current group.

Specified by:
groupStarted in interface ReportListener
Overrides:
groupStarted in class AbstractFunction
Parameters:
event - the current report event received.

getValue

public Object getValue()
Returns the number of groups processed so far (including the current group).

Returns:
the number of groups processed as java.lang.Integer.