001: /**
002: * ===========================================
003: * JFreeReport : a free Java reporting library
004: * ===========================================
005: *
006: * Project Info: http://reporting.pentaho.org/
007: *
008: * (C) Copyright 2001-2007, by Object Refinery Ltd, Pentaho Corporation and Contributors.
009: *
010: * This library is free software; you can redistribute it and/or modify it under the terms
011: * of the GNU Lesser General Public License as published by the Free Software Foundation;
012: * either version 2.1 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
015: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: * See the GNU Lesser General Public License for more details.
017: *
018: * You should have received a copy of the GNU Lesser General Public License along with this
019: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020: * Boston, MA 02111-1307, USA.
021: *
022: * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
023: * in the United States and other countries.]
024: *
025: * ------------
026: * AbstractFunction.java
027: * ------------
028: * (C) Copyright 2001-2007, by Object Refinery Ltd, Pentaho Corporation and Contributors.
029: */package org.jfree.report.function;
030:
031: import org.jfree.report.event.ReportEvent;
032:
033: /**
034: * Base class for implementing new report functions. Provides empty implementations of
035: * all the methods in the Function interface.
036: * <p/>
037: * The function is initialized when it gets added to the report. The method
038: * <code>initialize</code> gets called to perform the required initializations. At this
039: * point, all function properties must have been set to a valid state and the function
040: * must be named. If the initialisation fails, a FunctionInitializeException is thrown and
041: * the function get not added to the report.
042: *
043: * @author Thomas Morgner
044: */
045: public abstract class AbstractFunction extends AbstractExpression
046: implements Function {
047: /**
048: * Creates an unnamed function. Make sure the name of the function is set using {@link
049: * #setName} before the function is added to the report's function collection.
050: */
051: protected AbstractFunction() {
052: }
053:
054: /**
055: * Creates an named function.
056: *
057: * @param name the name of the function.
058: */
059: protected AbstractFunction(final String name) {
060: setName(name);
061: }
062:
063: /**
064: * Receives notification that report generation initializes the current run. <P> The
065: * event carries a ReportState.Started state. Use this to initialize the report.
066: *
067: * @param event The event.
068: */
069: public void reportInitialized(final ReportEvent event) {
070: }
071:
072: /**
073: * Receives notification that the report has started.
074: *
075: * @param event the event.
076: */
077: public void reportStarted(final ReportEvent event) {
078: }
079:
080: /**
081: * Receives notification that the report has finished.
082: *
083: * @param event the event.
084: */
085: public void reportFinished(final ReportEvent event) {
086: }
087:
088: /**
089: * Receives notification that a group has started.
090: *
091: * @param event the event.
092: */
093: public void groupStarted(final ReportEvent event) {
094: }
095:
096: /**
097: * Receives notification that a group has finished.
098: *
099: * @param event the event.
100: */
101: public void groupFinished(final ReportEvent event) {
102: }
103:
104: /**
105: * Receives notification that a row of data is being processed.
106: *
107: * @param event the event.
108: */
109: public void itemsAdvanced(final ReportEvent event) {
110: }
111:
112: /**
113: * Receives notification that a group of item bands is about to be processed. <P> The
114: * next events will be itemsAdvanced events until the itemsFinished event is raised.
115: *
116: * @param event The event.
117: */
118: public void itemsStarted(final ReportEvent event) {
119: }
120:
121: /**
122: * Receives notification that a group of item bands has been completed. <P> The itemBand
123: * is finished, the report starts to close open groups.
124: *
125: * @param event The event.
126: */
127: public void itemsFinished(final ReportEvent event) {
128: }
129:
130: /**
131: * Receives notification that report generation has completed, the report footer was
132: * printed, no more output is done. This is a helper event to shut down the output
133: * service.
134: *
135: * @param event The event.
136: */
137: public void reportDone(final ReportEvent event) {
138: // does nothing...
139: }
140: }
|