package net.sf.jasperreports.charts.fill; import net.sf.jasperreports.charts.JRValueDataset; import net.sf.jasperreports.engine.JRChartDataset; import net.sf.jasperreports.engine.JRExpression; import net.sf.jasperreports.engine.JRExpressionCollector; import net.sf.jasperreports.engine.design.JRVerifier; import net.sf.jasperreports.engine.fill.JRCalculator; import net.sf.jasperreports.engine.fill.JRExpressionEvalException; import net.sf.jasperreports.engine.fill.JRFillChartDataset; import net.sf.jasperreports.engine.fill.JRFillObjectFactory; import org.jfree.data.general.Dataset; import org.jfree.data.general.DefaultValueDataset; public class JRFillValueDataset extends JRFillChartDataset implements JRValueDataset { private Number value = null; private DefaultValueDataset valueDataset = new DefaultValueDataset(); public JRFillValueDataset(JRValueDataset valueDataset, JRFillObjectFactory factory) { super((JRChartDataset)valueDataset, factory); } public JRExpression getValueExpression() { return ((JRValueDataset)this.parent).getValueExpression(); } protected void customInitialize() { this.valueDataset = new DefaultValueDataset(); } protected void customEvaluate(JRCalculator calculator) throws JRExpressionEvalException { this.value = (Number)calculator.evaluate(getValueExpression()); } protected void customIncrement() { this.valueDataset.setValue(this.value); } public Dataset getCustomDataset() { return (Dataset)this.valueDataset; } public byte getDatasetType() { return 8; } public void collectExpressions(JRExpressionCollector collector) { collector.collect(this); } public void validate(JRVerifier verifier) { verifier.verify(this); } }