KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > laures > cewolf > DatasetProducer


1 /* ================================================================
2  * Cewolf : Chart enabling Web Objects Framework
3  * ================================================================
4  *
5  * Project Info: http://cewolf.sourceforge.net
6  * Project Lead: Guido Laures (guido@laures.de);
7  *
8  * (C) Copyright 2002, by Guido Laures
9  *
10  * This library is free software; you can redistribute it and/or modify it under the terms
11  * of the GNU Lesser General Public License as published by the Free Software Foundation;
12  * either version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  * See the GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License along with this
19  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */

22
23 package de.laures.cewolf;
24
25 import java.io.Serializable JavaDoc;
26 import java.util.Date JavaDoc;
27 import java.util.Map JavaDoc;
28
29 /**
30  * Produces a {@link org.jfree.data.Dataset} which will be rendered
31  * as a chart afterwards.
32  * @see org.jfree.data.Dataset
33  * @author Guido Laures
34  * @since 0.1
35  */

36 public interface DatasetProducer extends Serializable JavaDoc {
37     
38     /**
39      * By default the the name of the JSP attribute
40      * holding the producer instance is passed to the
41      * produceDataset method as a prameter.
42      */

43     public static final String JavaDoc PRODUCER_ATTRIBUTE_NAME = "de.laures.cewolf.DatasetProducer.id";
44     
45     /**
46      * Produces a {@link org.jfree.data.Dataset} object.
47      * @param params additional params for the dataset production. All elements
48      * of this HashMap are of type <code>java.io.Serializable</code>. This is
49      * necessary to ensure the the serialization of the dataset producer into
50      * the http session. To provide a producer with additional production
51      * parameters the &lt;param&gt; tag is used (see tag library documentation).
52      * It is recommended to synchronize implementations of this method to avoid
53      * concurrency problems.
54      * @return an object of type <code>org.jfree.data.Dataset</code>.
55      * @throws DatasetProduceException if an error occured during production
56      * @since 0.2
57      */

58     Object JavaDoc produceDataset(Map JavaDoc params) throws DatasetProduceException;
59     
60     /**
61      * This method is called by the Cewolf framework to check if a formerly
62      * produced data can be reused. If the data which had already been used
63      * for chart rendering is still valid this method should return <code>true</code>.
64      * If possible the Cewolf framework will try to reuse the rendered chart
65      * image. If this is not possible because of some circumstances (e.g. the chart
66      * had been removed from the image cache) the produceDataset method is called afterwards.
67      * Therefore there is no guarantee that the dataset production is always
68      * avoided if this method returns <code>true</true>.
69      * @param params the production parameters of the already produced data
70      * @param since the point in time when the already produced data had been produced
71      * @return <code>true</code> if the data which had been produced with the
72      * passed in parameters has expired since its creation, <code>false</code>
73      * otherwise
74      * @since 0.9
75      */

76     boolean hasExpired(Map JavaDoc params, Date JavaDoc since);
77     
78     /**
79      * Tis method returns a unique ID for a DatasetProducer from this class.
80      * Producers with the same ID are supposed to produce the same data when
81      * called with the same paramters.
82      * @return the unique ID for instances of this poducer class
83      * @since 0.9
84      */

85     String JavaDoc getProducerId();
86
87 }
88
Popular Tags