package net.sf.jasperreports.charts.fill; import net.sf.jasperreports.charts.JRXyzSeries; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExpression; import net.sf.jasperreports.engine.JRHyperlink; import net.sf.jasperreports.engine.JRHyperlinkHelper; import net.sf.jasperreports.engine.JRPrintHyperlink; import net.sf.jasperreports.engine.JRRuntimeException; import net.sf.jasperreports.engine.fill.JRCalculator; import net.sf.jasperreports.engine.fill.JRExpressionEvalException; import net.sf.jasperreports.engine.fill.JRFillExpressionEvaluator; import net.sf.jasperreports.engine.fill.JRFillHyperlinkHelper; import net.sf.jasperreports.engine.fill.JRFillObjectFactory; public class JRFillXyzSeries implements JRXyzSeries { JRXyzSeries parent = null; private Comparable series = null; private Number xValue = null; private Number yValue = null; private Number zValue = null; private JRPrintHyperlink itemHyperlink; public JRFillXyzSeries(JRXyzSeries xyzSeries, JRFillObjectFactory factory) { factory.put(xyzSeries, this); this.parent = xyzSeries; } public JRExpression getSeriesExpression() { return this.parent.getSeriesExpression(); } public JRExpression getXValueExpression() { return this.parent.getXValueExpression(); } public JRExpression getYValueExpression() { return this.parent.getYValueExpression(); } public JRExpression getZValueExpression() { return this.parent.getZValueExpression(); } protected Comparable getSeries() { return this.series; } protected Number getXValue() { return this.xValue; } protected Number getYValue() { return this.yValue; } protected Number getZValue() { return this.zValue; } protected JRPrintHyperlink getPrintItemHyperlink() { return this.itemHyperlink; } protected void evaluate(JRCalculator calculator) throws JRExpressionEvalException { this.series = (Comparable)calculator.evaluate(getSeriesExpression()); this.xValue = (Number)calculator.evaluate(getXValueExpression()); this.yValue = (Number)calculator.evaluate(getYValueExpression()); this.zValue = (Number)calculator.evaluate(getZValueExpression()); if (hasItemHyperlinks()) evaluateItemHyperlink(calculator); } protected void evaluateItemHyperlink(JRCalculator calculator) throws JRExpressionEvalException { try { this.itemHyperlink = JRFillHyperlinkHelper.evaluateHyperlink(getItemHyperlink(), (JRFillExpressionEvaluator)calculator, (byte)3); } catch (JRExpressionEvalException e) { throw e; } catch (JRException e) { throw new JRRuntimeException(e); } } public JRHyperlink getItemHyperlink() { return this.parent.getItemHyperlink(); } public boolean hasItemHyperlinks() { return !JRHyperlinkHelper.isEmpty(getItemHyperlink()); } public Object clone() { return null; } }