001: /*
002: * ============================================================================
003: * GNU Lesser General Public License
004: * ============================================================================
005: *
006: * JasperReports - Free Java report-generating library.
007: * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * 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,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library; if not, write to the Free Software
021: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
022: *
023: * JasperSoft Corporation
024: * 303 Second Street, Suite 450 North
025: * San Francisco, CA 94107
026: * http://www.jaspersoft.com
027: */
028: package net.sf.jasperreports.charts.base;
029:
030: import net.sf.jasperreports.charts.JRValueDataset;
031: import net.sf.jasperreports.engine.JRChartDataset;
032: import net.sf.jasperreports.engine.JRConstants;
033: import net.sf.jasperreports.engine.JRExpression;
034: import net.sf.jasperreports.engine.JRExpressionCollector;
035: import net.sf.jasperreports.engine.base.JRBaseChartDataset;
036: import net.sf.jasperreports.engine.base.JRBaseObjectFactory;
037: import net.sf.jasperreports.engine.design.JRVerifier;
038:
039: /**
040: * An immutable version of a dataset that generates a single value. A value
041: * dataset is suitable for using with charts that show a single value against
042: * a potential range, such as meter chart or a thermometer chart.
043: *
044: * @author Barry Klawans (bklawans@users.sourceforge.net)
045: * @version $Id: JRBaseValueDataset.java 1795 2007-07-30 09:18:47Z teodord $
046: */
047: public class JRBaseValueDataset extends JRBaseChartDataset implements
048: JRValueDataset {
049:
050: /**
051: *
052: */
053: private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID;
054:
055: /**
056: * The expression that returns the single value contained in this dataset.
057: */
058: protected JRExpression valueExpression = null;
059:
060: /**
061: * Construct a new dataset that is a copy of an existing one.
062: *
063: * @param dataset the dataset to copy
064: */
065: public JRBaseValueDataset(JRChartDataset dataset) {
066: super (dataset);
067: }
068:
069: /**
070: * Constructs a new dataset that is a copy of an existing one, and
071: * register all of the new dataset's expressions with the specified
072: * factory.
073: *
074: * @param dataset the datast to copy
075: * @param factory the factory to register the new dataset's expressions with
076: */
077: public JRBaseValueDataset(JRValueDataset dataset,
078: JRBaseObjectFactory factory) {
079: super (dataset, factory);
080:
081: valueExpression = factory.getExpression(dataset
082: .getValueExpression());
083: }
084:
085: /**
086: *
087: */
088: public JRExpression getValueExpression() {
089: return valueExpression;
090: }
091:
092: /**
093: *
094: */
095: public byte getDatasetType() {
096: return JRChartDataset.VALUE_DATASET;
097: }
098:
099: /**
100: * Adds all the expression used by this plot with the specified collector.
101: * All collected expression that are also registered with a factory will
102: * be included with the report is compiled.
103: *
104: * @param collector the expression collector to use
105: */
106: public void collectExpressions(JRExpressionCollector collector) {
107: collector.collect(this );
108: }
109:
110: public void validate(JRVerifier verifier) {
111: verifier.verify(this);
112: }
113:
114: }
|