first commit

This commit is contained in:
2025-07-28 13:56:49 +05:30
commit e9eb805edb
3438 changed files with 520990 additions and 0 deletions

View File

@@ -0,0 +1,965 @@
package net.sf.jasperreports.engine.fill;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sf.jasperreports.charts.JRAreaPlot;
import net.sf.jasperreports.charts.JRBar3DPlot;
import net.sf.jasperreports.charts.JRBarPlot;
import net.sf.jasperreports.charts.JRBubblePlot;
import net.sf.jasperreports.charts.JRCandlestickPlot;
import net.sf.jasperreports.charts.JRCategoryDataset;
import net.sf.jasperreports.charts.JRCategorySeries;
import net.sf.jasperreports.charts.JRChartAxis;
import net.sf.jasperreports.charts.JRHighLowDataset;
import net.sf.jasperreports.charts.JRHighLowPlot;
import net.sf.jasperreports.charts.JRLinePlot;
import net.sf.jasperreports.charts.JRMeterPlot;
import net.sf.jasperreports.charts.JRMultiAxisPlot;
import net.sf.jasperreports.charts.JRPie3DPlot;
import net.sf.jasperreports.charts.JRPieDataset;
import net.sf.jasperreports.charts.JRPiePlot;
import net.sf.jasperreports.charts.JRScatterPlot;
import net.sf.jasperreports.charts.JRThermometerPlot;
import net.sf.jasperreports.charts.JRTimePeriodDataset;
import net.sf.jasperreports.charts.JRTimePeriodSeries;
import net.sf.jasperreports.charts.JRTimeSeries;
import net.sf.jasperreports.charts.JRTimeSeriesDataset;
import net.sf.jasperreports.charts.JRTimeSeriesPlot;
import net.sf.jasperreports.charts.JRValueDataset;
import net.sf.jasperreports.charts.JRXyDataset;
import net.sf.jasperreports.charts.JRXySeries;
import net.sf.jasperreports.charts.JRXyzDataset;
import net.sf.jasperreports.charts.JRXyzSeries;
import net.sf.jasperreports.charts.fill.JRFillAreaPlot;
import net.sf.jasperreports.charts.fill.JRFillBar3DPlot;
import net.sf.jasperreports.charts.fill.JRFillBarPlot;
import net.sf.jasperreports.charts.fill.JRFillBubblePlot;
import net.sf.jasperreports.charts.fill.JRFillCandlestickPlot;
import net.sf.jasperreports.charts.fill.JRFillCategoryDataset;
import net.sf.jasperreports.charts.fill.JRFillCategorySeries;
import net.sf.jasperreports.charts.fill.JRFillChartAxis;
import net.sf.jasperreports.charts.fill.JRFillHighLowDataset;
import net.sf.jasperreports.charts.fill.JRFillHighLowPlot;
import net.sf.jasperreports.charts.fill.JRFillLinePlot;
import net.sf.jasperreports.charts.fill.JRFillMeterPlot;
import net.sf.jasperreports.charts.fill.JRFillMultiAxisPlot;
import net.sf.jasperreports.charts.fill.JRFillPie3DPlot;
import net.sf.jasperreports.charts.fill.JRFillPieDataset;
import net.sf.jasperreports.charts.fill.JRFillPiePlot;
import net.sf.jasperreports.charts.fill.JRFillScatterPlot;
import net.sf.jasperreports.charts.fill.JRFillThermometerPlot;
import net.sf.jasperreports.charts.fill.JRFillTimePeriodDataset;
import net.sf.jasperreports.charts.fill.JRFillTimePeriodSeries;
import net.sf.jasperreports.charts.fill.JRFillTimeSeries;
import net.sf.jasperreports.charts.fill.JRFillTimeSeriesDataset;
import net.sf.jasperreports.charts.fill.JRFillTimeSeriesPlot;
import net.sf.jasperreports.charts.fill.JRFillValueDataset;
import net.sf.jasperreports.charts.fill.JRFillXyDataset;
import net.sf.jasperreports.charts.fill.JRFillXySeries;
import net.sf.jasperreports.charts.fill.JRFillXyzDataset;
import net.sf.jasperreports.charts.fill.JRFillXyzSeries;
import net.sf.jasperreports.crosstabs.JRCellContents;
import net.sf.jasperreports.crosstabs.JRCrosstab;
import net.sf.jasperreports.crosstabs.JRCrosstabCell;
import net.sf.jasperreports.crosstabs.JRCrosstabColumnGroup;
import net.sf.jasperreports.crosstabs.JRCrosstabDataset;
import net.sf.jasperreports.crosstabs.JRCrosstabMeasure;
import net.sf.jasperreports.crosstabs.JRCrosstabParameter;
import net.sf.jasperreports.crosstabs.JRCrosstabRowGroup;
import net.sf.jasperreports.crosstabs.fill.JRFillCrosstabCell;
import net.sf.jasperreports.crosstabs.fill.JRFillCrosstabColumnGroup;
import net.sf.jasperreports.crosstabs.fill.JRFillCrosstabMeasure;
import net.sf.jasperreports.crosstabs.fill.JRFillCrosstabParameter;
import net.sf.jasperreports.crosstabs.fill.JRFillCrosstabRowGroup;
import net.sf.jasperreports.engine.JRAbstractObjectFactory;
import net.sf.jasperreports.engine.JRBand;
import net.sf.jasperreports.engine.JRBreak;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRConditionalStyle;
import net.sf.jasperreports.engine.JRDataset;
import net.sf.jasperreports.engine.JRDatasetRun;
import net.sf.jasperreports.engine.JRDefaultStyleProvider;
import net.sf.jasperreports.engine.JRElementGroup;
import net.sf.jasperreports.engine.JREllipse;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.JRFrame;
import net.sf.jasperreports.engine.JRGroup;
import net.sf.jasperreports.engine.JRImage;
import net.sf.jasperreports.engine.JRLine;
import net.sf.jasperreports.engine.JRParameter;
import net.sf.jasperreports.engine.JRRectangle;
import net.sf.jasperreports.engine.JRReportFont;
import net.sf.jasperreports.engine.JRReportTemplate;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JRStaticText;
import net.sf.jasperreports.engine.JRStyle;
import net.sf.jasperreports.engine.JRStyleContainer;
import net.sf.jasperreports.engine.JRStyleSetter;
import net.sf.jasperreports.engine.JRSubreport;
import net.sf.jasperreports.engine.JRSubreportReturnValue;
import net.sf.jasperreports.engine.JRTextField;
import net.sf.jasperreports.engine.JRVariable;
import net.sf.jasperreports.engine.base.JRBaseConditionalStyle;
import net.sf.jasperreports.engine.base.JRBaseReportFont;
import net.sf.jasperreports.engine.base.JRBaseStyle;
import org.apache.commons.collections.SequencedHashMap;
public class JRFillObjectFactory extends JRAbstractObjectFactory {
private JRBaseFiller filler = null;
private JRFillExpressionEvaluator evaluator;
private JRFillObjectFactory parentFiller;
private List elementDatasets = new ArrayList();
private Map elementDatasetMap = new HashMap();
private Map delayedStyleSettersByName = new HashMap();
private Set originalStyleList;
protected static class StylesList {
private final List styles = new ArrayList();
private final Map stylesIdx = new HashMap();
public boolean containsStyle(String name) {
return this.stylesIdx.containsKey(name);
}
public JRStyle getStyle(String name) {
Integer idx = (Integer)this.stylesIdx.get(name);
return (idx == null) ? null : this.styles.get(idx.intValue());
}
public void addStyle(JRStyle style) {
this.styles.add(style);
this.stylesIdx.put(style.getName(), new Integer(this.styles.size() - 1));
}
public void renamed(String oldName, String newName) {
Integer idx = (Integer)this.stylesIdx.remove(oldName);
this.stylesIdx.put(newName, idx);
}
}
private StylesList stylesMap = new StylesList();
protected JRFillObjectFactory(JRBaseFiller filler) {
this.filler = filler;
this.evaluator = filler.calculator;
}
public JRFillObjectFactory(JRBaseFiller filler, JRFillExpressionEvaluator expressionEvaluator) {
this.filler = filler;
this.evaluator = expressionEvaluator;
}
public JRFillObjectFactory(JRFillObjectFactory parent, JRFillExpressionEvaluator expressionEvaluator) {
this.parentFiller = parent;
this.filler = parent.filler;
this.evaluator = expressionEvaluator;
}
protected JRFillExpressionEvaluator getExpressionEvaluator() {
return this.evaluator;
}
protected JRFillChartDataset[] getDatasets() {
return (JRFillChartDataset[])this.elementDatasets.toArray((Object[])new JRFillChartDataset[this.elementDatasets.size()]);
}
protected JRFillElementDataset[] getElementDatasets(JRDataset dataset) {
JRFillElementDataset[] elementDatasetsArray;
List elementDatasetsList;
if (dataset.isMainDataset()) {
elementDatasetsList = this.elementDatasets;
} else {
elementDatasetsList = (List)this.elementDatasetMap.get(dataset.getName());
}
if (elementDatasetsList == null || elementDatasetsList.size() == 0) {
elementDatasetsArray = new JRFillElementDataset[0];
} else {
elementDatasetsArray = new JRFillElementDataset[elementDatasetsList.size()];
elementDatasetsList.toArray((Object[])elementDatasetsArray);
}
return elementDatasetsArray;
}
public JRReportFont getReportFont(JRReportFont font) {
JRBaseReportFont fillFont = null;
if (font != null) {
fillFont = (JRBaseReportFont)get(font);
if (fillFont == null) {
fillFont = new JRBaseReportFont(font);
put(font, fillFont);
}
}
return (JRReportFont)fillFont;
}
protected void registerDelayedStyleSetter(JRStyleSetter delayedSetter, String styleName) {
if (this.parentFiller == null) {
List setters = (List)this.delayedStyleSettersByName.get(styleName);
if (setters == null) {
setters = new ArrayList();
this.delayedStyleSettersByName.put(styleName, setters);
}
setters.add(delayedSetter);
} else {
this.parentFiller.registerDelayedStyleSetter(delayedSetter, styleName);
}
}
public void registerDelayedStyleSetter(JRStyleSetter delayedSetter, JRStyleContainer styleContainer) {
JRStyle style = styleContainer.getStyle();
String nameReference = styleContainer.getStyleNameReference();
if (style != null) {
registerDelayedStyleSetter(delayedSetter, style.getName());
} else if (nameReference != null) {
registerDelayedStyleSetter(delayedSetter, nameReference);
}
}
public JRStyle getStyle(JRStyle style) {
JRBaseStyle fillStyle = null;
if (style != null) {
fillStyle = (JRBaseStyle)get(style);
if (fillStyle == null) {
fillStyle = new JRBaseStyle(style, this);
put(style, fillStyle);
if (this.originalStyleList != null && this.originalStyleList.contains(style)) {
renameExistingStyle(style.getName());
this.stylesMap.addStyle(style);
}
}
}
return (JRStyle)fillStyle;
}
protected void renameExistingStyle(String name) {
JRStyle originalStyle = this.stylesMap.getStyle(name);
if (originalStyle != null) {
String newName;
JRBaseStyle style = (JRBaseStyle)get(originalStyle);
int suf = 1;
do {
newName = name + suf;
suf++;
} while (this.stylesMap.containsStyle(newName));
style.rename(newName);
this.stylesMap.renamed(name, newName);
}
}
public void setStyle(JRStyleSetter setter, JRStyleContainer styleContainer) {
JRStyle style = styleContainer.getStyle();
String nameReference = styleContainer.getStyleNameReference();
if (style != null) {
JRStyle newStyle = getStyle(style);
setter.setStyle(newStyle);
} else if (nameReference != null) {
JRStyle originalStyle = this.stylesMap.getStyle(nameReference);
if (originalStyle == null)
throw new JRRuntimeException("Style " + nameReference + " not found");
JRStyle externalStyle = (JRStyle)get(originalStyle);
setter.setStyle(externalStyle);
}
}
protected JRFillParameter getParameter(JRParameter parameter) {
JRFillParameter fillParameter = null;
if (parameter != null) {
fillParameter = (JRFillParameter)get(parameter);
if (fillParameter == null)
fillParameter = new JRFillParameter(parameter, this);
}
return fillParameter;
}
protected JRFillField getField(JRField field) {
JRFillField fillField = null;
if (field != null) {
fillField = (JRFillField)get(field);
if (fillField == null)
fillField = new JRFillField(field, this);
}
return fillField;
}
public JRFillVariable getVariable(JRVariable variable) {
JRFillVariable fillVariable = null;
if (variable != null) {
fillVariable = (JRFillVariable)get(variable);
if (fillVariable == null)
fillVariable = new JRFillVariable(variable, this);
}
return fillVariable;
}
protected JRFillGroup getGroup(JRGroup group) {
JRFillGroup fillGroup = null;
if (group != null) {
fillGroup = (JRFillGroup)get(group);
if (fillGroup == null)
fillGroup = new JRFillGroup(group, this);
}
return fillGroup;
}
protected JRFillBand getBand(JRBand band) {
JRFillBand fillBand = null;
fillBand = (JRFillBand)get(band);
if (fillBand == null)
fillBand = new JRFillBand(this.filler, band, this);
return fillBand;
}
public void visitElementGroup(JRElementGroup elementGroup) {
JRFillElementGroup fillElementGroup = null;
if (elementGroup != null) {
fillElementGroup = (JRFillElementGroup)get(elementGroup);
if (fillElementGroup == null)
fillElementGroup = new JRFillElementGroup(elementGroup, this);
}
setVisitResult(fillElementGroup);
}
public void visitBreak(JRBreak breakElement) {
JRFillBreak fillBreak = null;
if (breakElement != null) {
fillBreak = (JRFillBreak)get(breakElement);
if (fillBreak == null)
fillBreak = new JRFillBreak(this.filler, breakElement, this);
}
setVisitResult(fillBreak);
}
public void visitLine(JRLine line) {
JRFillLine fillLine = null;
if (line != null) {
fillLine = (JRFillLine)get(line);
if (fillLine == null)
fillLine = new JRFillLine(this.filler, line, this);
}
setVisitResult(fillLine);
}
public void visitRectangle(JRRectangle rectangle) {
JRFillRectangle fillRectangle = null;
if (rectangle != null) {
fillRectangle = (JRFillRectangle)get(rectangle);
if (fillRectangle == null)
fillRectangle = new JRFillRectangle(this.filler, rectangle, this);
}
setVisitResult(fillRectangle);
}
public void visitEllipse(JREllipse ellipse) {
JRFillEllipse fillEllipse = null;
if (ellipse != null) {
fillEllipse = (JRFillEllipse)get(ellipse);
if (fillEllipse == null)
fillEllipse = new JRFillEllipse(this.filler, ellipse, this);
}
setVisitResult(fillEllipse);
}
public void visitImage(JRImage image) {
JRFillImage fillImage = null;
if (image != null) {
fillImage = (JRFillImage)get(image);
if (fillImage == null)
fillImage = new JRFillImage(this.filler, image, this);
}
setVisitResult(fillImage);
}
public void visitStaticText(JRStaticText staticText) {
JRFillStaticText fillStaticText = null;
if (staticText != null) {
fillStaticText = (JRFillStaticText)get(staticText);
if (fillStaticText == null)
fillStaticText = new JRFillStaticText(this.filler, staticText, this);
}
setVisitResult(fillStaticText);
}
public void visitTextField(JRTextField textField) {
JRFillTextField fillTextField = null;
if (textField != null) {
fillTextField = (JRFillTextField)get(textField);
if (fillTextField == null)
fillTextField = new JRFillTextField(this.filler, textField, this);
}
setVisitResult(fillTextField);
}
public void visitSubreport(JRSubreport subreport) {
JRFillSubreport fillSubreport = null;
if (subreport != null) {
fillSubreport = (JRFillSubreport)get(subreport);
if (fillSubreport == null)
fillSubreport = new JRFillSubreport(this.filler, subreport, this);
}
setVisitResult(fillSubreport);
}
public void visitChart(JRChart chart) {
JRFillChart fillChart = null;
if (chart != null) {
fillChart = (JRFillChart)get(chart);
if (fillChart == null)
fillChart = new JRFillChart(this.filler, chart, this);
}
setVisitResult(fillChart);
}
public JRPieDataset getPieDataset(JRPieDataset pieDataset) {
JRFillPieDataset fillPieDataset = null;
if (pieDataset != null) {
fillPieDataset = (JRFillPieDataset)get(pieDataset);
if (fillPieDataset == null) {
fillPieDataset = new JRFillPieDataset(pieDataset, this);
addChartDataset((JRFillElementDataset)fillPieDataset);
}
}
return (JRPieDataset)fillPieDataset;
}
public JRPiePlot getPiePlot(JRPiePlot piePlot) {
JRFillPiePlot fillPiePlot = null;
if (piePlot != null) {
fillPiePlot = (JRFillPiePlot)get(piePlot);
if (fillPiePlot == null)
fillPiePlot = new JRFillPiePlot(piePlot, this);
}
return (JRPiePlot)fillPiePlot;
}
public JRPie3DPlot getPie3DPlot(JRPie3DPlot pie3DPlot) {
JRFillPie3DPlot fillPie3DPlot = null;
if (pie3DPlot != null) {
fillPie3DPlot = (JRFillPie3DPlot)get(pie3DPlot);
if (fillPie3DPlot == null)
fillPie3DPlot = new JRFillPie3DPlot(pie3DPlot, this);
}
return (JRPie3DPlot)fillPie3DPlot;
}
public JRCategoryDataset getCategoryDataset(JRCategoryDataset categoryDataset) {
JRFillCategoryDataset fillCategoryDataset = null;
if (categoryDataset != null) {
fillCategoryDataset = (JRFillCategoryDataset)get(categoryDataset);
if (fillCategoryDataset == null) {
fillCategoryDataset = new JRFillCategoryDataset(categoryDataset, this);
addChartDataset((JRFillElementDataset)fillCategoryDataset);
}
}
return (JRCategoryDataset)fillCategoryDataset;
}
public JRXyzDataset getXyzDataset(JRXyzDataset xyzDataset) {
JRFillXyzDataset fillXyzDataset = null;
if (xyzDataset != null) {
fillXyzDataset = (JRFillXyzDataset)get(xyzDataset);
if (fillXyzDataset == null) {
fillXyzDataset = new JRFillXyzDataset(xyzDataset, this);
addChartDataset((JRFillElementDataset)fillXyzDataset);
}
}
return (JRXyzDataset)fillXyzDataset;
}
public JRXyDataset getXyDataset(JRXyDataset xyDataset) {
JRFillXyDataset fillXyDataset = null;
if (xyDataset != null) {
fillXyDataset = (JRFillXyDataset)get(xyDataset);
if (fillXyDataset == null) {
fillXyDataset = new JRFillXyDataset(xyDataset, this);
addChartDataset((JRFillElementDataset)fillXyDataset);
}
}
return (JRXyDataset)fillXyDataset;
}
public JRTimeSeriesDataset getTimeSeriesDataset(JRTimeSeriesDataset timeSeriesDataset) {
JRFillTimeSeriesDataset fillTimeSeriesDataset = null;
if (timeSeriesDataset != null) {
fillTimeSeriesDataset = (JRFillTimeSeriesDataset)get(timeSeriesDataset);
if (fillTimeSeriesDataset == null) {
fillTimeSeriesDataset = new JRFillTimeSeriesDataset(timeSeriesDataset, this);
addChartDataset((JRFillElementDataset)fillTimeSeriesDataset);
}
}
return (JRTimeSeriesDataset)fillTimeSeriesDataset;
}
public JRTimePeriodDataset getTimePeriodDataset(JRTimePeriodDataset timePeriodDataset) {
JRFillTimePeriodDataset fillTimePeriodDataset = null;
if (timePeriodDataset != null) {
fillTimePeriodDataset = (JRFillTimePeriodDataset)get(timePeriodDataset);
if (fillTimePeriodDataset == null) {
fillTimePeriodDataset = new JRFillTimePeriodDataset(timePeriodDataset, this);
addChartDataset((JRFillElementDataset)fillTimePeriodDataset);
}
}
return (JRTimePeriodDataset)fillTimePeriodDataset;
}
public JRCategorySeries getCategorySeries(JRCategorySeries categorySeries) {
JRFillCategorySeries fillCategorySeries = null;
if (categorySeries != null) {
fillCategorySeries = (JRFillCategorySeries)get(categorySeries);
if (fillCategorySeries == null)
fillCategorySeries = new JRFillCategorySeries(categorySeries, this);
}
return (JRCategorySeries)fillCategorySeries;
}
public JRXyzSeries getXyzSeries(JRXyzSeries xyzSeries) {
JRFillXyzSeries fillXyzSeries = null;
if (xyzSeries != null) {
fillXyzSeries = (JRFillXyzSeries)get(xyzSeries);
if (fillXyzSeries == null)
fillXyzSeries = new JRFillXyzSeries(xyzSeries, this);
}
return (JRXyzSeries)fillXyzSeries;
}
public JRXySeries getXySeries(JRXySeries xySeries) {
JRFillXySeries fillXySeries = null;
if (xySeries != null) {
fillXySeries = (JRFillXySeries)get(xySeries);
if (fillXySeries == null)
fillXySeries = new JRFillXySeries(xySeries, this);
}
return (JRXySeries)fillXySeries;
}
public JRBarPlot getBarPlot(JRBarPlot barPlot) {
JRFillBarPlot fillBarPlot = null;
if (barPlot != null) {
fillBarPlot = (JRFillBarPlot)get(barPlot);
if (fillBarPlot == null)
fillBarPlot = new JRFillBarPlot(barPlot, this);
}
return (JRBarPlot)fillBarPlot;
}
public JRTimeSeries getTimeSeries(JRTimeSeries timeSeries) {
JRFillTimeSeries fillTimeSeries = null;
if (timeSeries != null) {
fillTimeSeries = (JRFillTimeSeries)get(timeSeries);
if (fillTimeSeries == null)
fillTimeSeries = new JRFillTimeSeries(timeSeries, this);
}
return (JRTimeSeries)fillTimeSeries;
}
public JRTimePeriodSeries getTimePeriodSeries(JRTimePeriodSeries timePeriodSeries) {
JRFillTimePeriodSeries fillTimePeriodSeries = null;
if (timePeriodSeries != null) {
fillTimePeriodSeries = (JRFillTimePeriodSeries)get(timePeriodSeries);
if (fillTimePeriodSeries == null)
fillTimePeriodSeries = new JRFillTimePeriodSeries(timePeriodSeries, this);
}
return (JRTimePeriodSeries)fillTimePeriodSeries;
}
public JRBar3DPlot getBar3DPlot(JRBar3DPlot barPlot) {
JRFillBar3DPlot fillBarPlot = null;
if (barPlot != null) {
fillBarPlot = (JRFillBar3DPlot)get(barPlot);
if (fillBarPlot == null)
fillBarPlot = new JRFillBar3DPlot(barPlot, this);
}
return (JRBar3DPlot)fillBarPlot;
}
public JRLinePlot getLinePlot(JRLinePlot linePlot) {
JRFillLinePlot fillLinePlot = null;
if (linePlot != null) {
fillLinePlot = (JRFillLinePlot)get(linePlot);
if (fillLinePlot == null)
fillLinePlot = new JRFillLinePlot(linePlot, this);
}
return (JRLinePlot)fillLinePlot;
}
public JRScatterPlot getScatterPlot(JRScatterPlot scatterPlot) {
JRFillScatterPlot fillScatterPlot = null;
if (scatterPlot != null) {
fillScatterPlot = (JRFillScatterPlot)get(scatterPlot);
if (fillScatterPlot == null)
fillScatterPlot = new JRFillScatterPlot(scatterPlot, this);
}
return (JRScatterPlot)fillScatterPlot;
}
public JRAreaPlot getAreaPlot(JRAreaPlot areaPlot) {
JRFillAreaPlot fillAreaPlot = null;
if (areaPlot != null) {
fillAreaPlot = (JRFillAreaPlot)get(areaPlot);
if (fillAreaPlot == null)
fillAreaPlot = new JRFillAreaPlot(areaPlot, this);
}
return (JRAreaPlot)fillAreaPlot;
}
public JRBubblePlot getBubblePlot(JRBubblePlot bubblePlot) {
JRFillBubblePlot fillBubblePlot = null;
if (bubblePlot != null) {
fillBubblePlot = (JRFillBubblePlot)get(bubblePlot);
if (fillBubblePlot == null)
fillBubblePlot = new JRFillBubblePlot(bubblePlot, this);
}
return (JRBubblePlot)fillBubblePlot;
}
public JRHighLowDataset getHighLowDataset(JRHighLowDataset highLowDataset) {
JRFillHighLowDataset fillHighLowDataset = null;
if (highLowDataset != null) {
fillHighLowDataset = (JRFillHighLowDataset)get(highLowDataset);
if (fillHighLowDataset == null) {
fillHighLowDataset = new JRFillHighLowDataset(highLowDataset, this);
addChartDataset((JRFillElementDataset)fillHighLowDataset);
}
}
return (JRHighLowDataset)fillHighLowDataset;
}
public JRHighLowPlot getHighLowPlot(JRHighLowPlot highLowPlot) {
JRFillHighLowPlot fillHighLowPlot = null;
if (highLowPlot != null) {
fillHighLowPlot = (JRFillHighLowPlot)get(highLowPlot);
if (fillHighLowPlot == null)
fillHighLowPlot = new JRFillHighLowPlot(highLowPlot, this);
}
return (JRHighLowPlot)fillHighLowPlot;
}
public JRCandlestickPlot getCandlestickPlot(JRCandlestickPlot candlestickPlot) {
JRFillCandlestickPlot fillCandlestickPlot = null;
if (candlestickPlot != null) {
fillCandlestickPlot = (JRFillCandlestickPlot)get(candlestickPlot);
if (fillCandlestickPlot == null)
fillCandlestickPlot = new JRFillCandlestickPlot(candlestickPlot, this);
}
return (JRCandlestickPlot)fillCandlestickPlot;
}
public JRTimeSeriesPlot getTimeSeriesPlot(JRTimeSeriesPlot plot) {
JRFillTimeSeriesPlot fillPlot = null;
if (plot != null) {
fillPlot = (JRFillTimeSeriesPlot)get(plot);
if (fillPlot == null)
fillPlot = new JRFillTimeSeriesPlot(plot, this);
}
return (JRTimeSeriesPlot)fillPlot;
}
public JRValueDataset getValueDataset(JRValueDataset valueDataset) {
JRFillValueDataset fillValueDataset = null;
if (valueDataset != null) {
fillValueDataset = (JRFillValueDataset)get(valueDataset);
if (fillValueDataset == null) {
fillValueDataset = new JRFillValueDataset(valueDataset, this);
addChartDataset((JRFillElementDataset)fillValueDataset);
}
}
return (JRValueDataset)fillValueDataset;
}
public JRMeterPlot getMeterPlot(JRMeterPlot meterPlot) {
JRFillMeterPlot fillMeterPlot = null;
if (meterPlot != null) {
fillMeterPlot = (JRFillMeterPlot)get(meterPlot);
if (fillMeterPlot == null)
fillMeterPlot = new JRFillMeterPlot(meterPlot, this);
}
return (JRMeterPlot)fillMeterPlot;
}
public JRThermometerPlot getThermometerPlot(JRThermometerPlot thermometerPlot) {
JRFillThermometerPlot fillThermometerPlot = null;
if (thermometerPlot != null) {
fillThermometerPlot = (JRFillThermometerPlot)get(thermometerPlot);
if (fillThermometerPlot == null)
fillThermometerPlot = new JRFillThermometerPlot(thermometerPlot, this);
}
return (JRThermometerPlot)fillThermometerPlot;
}
public JRMultiAxisPlot getMultiAxisPlot(JRMultiAxisPlot multiAxisPlot) {
JRFillMultiAxisPlot fillMultiAxisPlot = null;
if (multiAxisPlot != null) {
fillMultiAxisPlot = (JRFillMultiAxisPlot)get(multiAxisPlot);
if (fillMultiAxisPlot == null)
fillMultiAxisPlot = new JRFillMultiAxisPlot(multiAxisPlot, this);
}
return (JRMultiAxisPlot)fillMultiAxisPlot;
}
protected JRFillSubreportReturnValue getSubreportReturnValue(JRSubreportReturnValue returnValue) {
JRFillSubreportReturnValue fillReturnValue = null;
if (returnValue != null) {
fillReturnValue = (JRFillSubreportReturnValue)get(returnValue);
if (fillReturnValue == null)
fillReturnValue = new JRFillSubreportReturnValue(returnValue, this, this.filler);
}
return fillReturnValue;
}
public void visitCrosstab(JRCrosstab crosstabElement) {
JRFillCrosstab fillCrosstab = null;
if (crosstabElement != null) {
fillCrosstab = (JRFillCrosstab)get(crosstabElement);
if (fillCrosstab == null)
fillCrosstab = new JRFillCrosstab(this.filler, crosstabElement, this);
}
setVisitResult(fillCrosstab);
}
public JRFillCrosstab.JRFillCrosstabDataset getCrosstabDataset(JRCrosstabDataset dataset, JRFillCrosstab fillCrosstab) {
JRFillCrosstab.JRFillCrosstabDataset fillDataset = null;
if (dataset != null) {
fillDataset = (JRFillCrosstab.JRFillCrosstabDataset)get(dataset);
if (fillDataset == null) {
fillCrosstab.getClass();
fillDataset = new JRFillCrosstab.JRFillCrosstabDataset(fillCrosstab, dataset, this);
addChartDataset(fillDataset);
}
}
return fillDataset;
}
public JRFillDataset getDataset(JRDataset dataset) {
JRFillDataset fillDataset = null;
if (dataset != null) {
fillDataset = (JRFillDataset)get(dataset);
if (fillDataset == null)
fillDataset = new JRFillDataset(this.filler, dataset, this);
}
return fillDataset;
}
private void addChartDataset(JRFillElementDataset elementDataset) {
List elementDatasetsList;
JRDatasetRun datasetRun = elementDataset.getDatasetRun();
if (datasetRun == null) {
elementDatasetsList = this.elementDatasets;
} else {
String datasetName = datasetRun.getDatasetName();
elementDatasetsList = (List)this.elementDatasetMap.get(datasetName);
if (elementDatasetsList == null) {
elementDatasetsList = new ArrayList();
this.elementDatasetMap.put(datasetName, elementDatasetsList);
}
}
elementDatasetsList.add(elementDataset);
}
public JRFillDatasetRun getDatasetRun(JRDatasetRun datasetRun) {
JRFillDatasetRun fillDatasetRun = null;
if (datasetRun != null) {
fillDatasetRun = (JRFillDatasetRun)get(datasetRun);
if (fillDatasetRun == null)
fillDatasetRun = new JRFillDatasetRun(this.filler, datasetRun, this);
}
return fillDatasetRun;
}
public JRFillCrosstabParameter getCrosstabParameter(JRCrosstabParameter parameter) {
JRFillCrosstabParameter fillParameter = null;
if (parameter != null) {
fillParameter = (JRFillCrosstabParameter)get(parameter);
if (fillParameter == null)
fillParameter = new JRFillCrosstabParameter(parameter, this);
}
return fillParameter;
}
public JRFillCellContents getCell(JRCellContents cell) {
JRFillCellContents fillCell = null;
if (cell != null) {
fillCell = (JRFillCellContents)get(cell);
if (fillCell == null)
fillCell = new JRFillCellContents(this.filler, cell, this);
}
return fillCell;
}
public JRFillCrosstabRowGroup getCrosstabRowGroup(JRCrosstabRowGroup group) {
JRFillCrosstabRowGroup fillGroup = null;
if (group != null) {
fillGroup = (JRFillCrosstabRowGroup)get(group);
if (fillGroup == null)
fillGroup = new JRFillCrosstabRowGroup(group, this);
}
return fillGroup;
}
public JRFillCrosstabColumnGroup getCrosstabColumnGroup(JRCrosstabColumnGroup group) {
JRFillCrosstabColumnGroup fillGroup = null;
if (group != null) {
fillGroup = (JRFillCrosstabColumnGroup)get(group);
if (fillGroup == null)
fillGroup = new JRFillCrosstabColumnGroup(group, this);
}
return fillGroup;
}
public JRFillCrosstabCell getCrosstabCell(JRCrosstabCell cell) {
JRFillCrosstabCell fillCell = null;
if (cell != null) {
fillCell = (JRFillCrosstabCell)get(cell);
if (fillCell == null)
fillCell = new JRFillCrosstabCell(cell, this);
}
return fillCell;
}
public JRFillCrosstabMeasure getCrosstabMeasure(JRCrosstabMeasure measure) {
JRFillCrosstabMeasure fillMeasure = null;
if (measure != null) {
fillMeasure = (JRFillCrosstabMeasure)get(measure);
if (fillMeasure == null)
fillMeasure = new JRFillCrosstabMeasure(measure, this);
}
return fillMeasure;
}
public void visitFrame(JRFrame frame) {
Object fillFrame = null;
if (frame != null) {
fillFrame = get(frame);
if (fillFrame == null)
fillFrame = new JRFillFrame(this.filler, frame, this);
}
setVisitResult(fillFrame);
}
protected JRBaseFiller getFiller() {
return this.filler;
}
public JRConditionalStyle getConditionalStyle(JRConditionalStyle conditionalStyle, JRStyle style) {
JRBaseConditionalStyle baseConditionalStyle = null;
if (conditionalStyle != null) {
baseConditionalStyle = (JRBaseConditionalStyle)get(conditionalStyle);
if (baseConditionalStyle == null) {
baseConditionalStyle = new JRBaseConditionalStyle(conditionalStyle, style, this);
put(conditionalStyle, baseConditionalStyle);
}
}
return (JRConditionalStyle)baseConditionalStyle;
}
public JRExpression getExpression(JRExpression expression, boolean assignNotUsedId) {
return expression;
}
public JRChartAxis getChartAxis(JRChartAxis axis) {
JRFillChartAxis fillAxis = null;
if (axis != null) {
fillAxis = (JRFillChartAxis)get(axis);
if (fillAxis == null)
fillAxis = new JRFillChartAxis(axis, this);
}
return (JRChartAxis)fillAxis;
}
public JRFillReportTemplate getReportTemplate(JRReportTemplate template) {
JRFillReportTemplate fillTemplate = null;
if (template != null) {
fillTemplate = (JRFillReportTemplate)get(template);
if (fillTemplate == null)
fillTemplate = new JRFillReportTemplate(template, this.filler, this);
}
return fillTemplate;
}
public List setStyles(List styles) {
this.originalStyleList = new HashSet(styles);
Set requestedStyles = collectRequestedStyles(styles);
SequencedHashMap sequencedHashMap = new SequencedHashMap();
Map allStylesMap = new HashMap();
for (Iterator it = styles.iterator(); it.hasNext(); ) {
JRStyle style = (JRStyle)it.next();
if (requestedStyles.contains(style))
collectUsedStyles(style, (Map)sequencedHashMap, allStylesMap);
allStylesMap.put(style.getName(), style);
}
List includedStyles = new ArrayList();
for (Iterator iterator = sequencedHashMap.keySet().iterator(); iterator.hasNext(); ) {
JRStyle style = iterator.next();
JRStyle newStyle = getStyle(style);
includedStyles.add(newStyle);
if (requestedStyles.contains(style))
useDelayedStyle(newStyle);
}
checkUnresolvedReferences();
return includedStyles;
}
protected Set collectRequestedStyles(List externalStyles) {
Map requestedStylesMap = new HashMap();
for (Iterator it = externalStyles.iterator(); it.hasNext(); ) {
JRStyle style = it.next();
String name = style.getName();
if (this.delayedStyleSettersByName.containsKey(name))
requestedStylesMap.put(name, style);
}
return new HashSet(requestedStylesMap.values());
}
protected void collectUsedStyles(JRStyle style, Map usedStylesMap, Map allStylesMap) {
if (!usedStylesMap.containsKey(style) && this.originalStyleList.contains(style)) {
JRStyle parent = style.getStyle();
if (parent == null) {
String parentName = style.getStyleNameReference();
if (parentName != null) {
parent = (JRStyle)allStylesMap.get(parentName);
if (parent == null)
throw new JRRuntimeException("Style " + parentName + " not found");
}
}
if (parent != null)
collectUsedStyles(parent, usedStylesMap, allStylesMap);
usedStylesMap.put(style, null);
}
}
protected void useDelayedStyle(JRStyle style) {
List delayedSetters = (List)this.delayedStyleSettersByName.remove(style.getName());
if (delayedSetters != null)
for (Iterator it = delayedSetters.iterator(); it.hasNext(); ) {
JRStyleSetter setter = it.next();
setter.setStyle(style);
}
}
protected void checkUnresolvedReferences() {
if (!this.delayedStyleSettersByName.isEmpty()) {
StringBuffer errorMsg = new StringBuffer("Could not resolved style(s): ");
for (Iterator it = this.delayedStyleSettersByName.keySet().iterator(); it.hasNext(); ) {
String name = it.next();
errorMsg.append(name);
errorMsg.append(", ");
}
throw new JRRuntimeException(errorMsg.substring(0, errorMsg.length() - 2));
}
}
public JRDefaultStyleProvider getDefaultStyleProvider() {
return this.filler.getJasperPrint().getDefaultStyleProvider();
}
}