1
24 package net.sf.jasperreports.engine;
25
26 import java.util.HashMap;
27 import java.util.Map;
28
29 import net.sf.jasperreports.charts.JRAreaPlot;
30 import net.sf.jasperreports.charts.JRBar3DPlot;
31 import net.sf.jasperreports.charts.JRBarPlot;
32 import net.sf.jasperreports.charts.JRBubblePlot;
33 import net.sf.jasperreports.charts.JRCandlestickPlot;
34 import net.sf.jasperreports.charts.JRCategoryDataset;
35 import net.sf.jasperreports.charts.JRCategorySeries;
36 import net.sf.jasperreports.charts.JRLinePlot;
37 import net.sf.jasperreports.charts.JRPie3DPlot;
38 import net.sf.jasperreports.charts.JRPieDataset;
39 import net.sf.jasperreports.charts.JRPiePlot;
40 import net.sf.jasperreports.charts.JRPieSeries;
41 import net.sf.jasperreports.charts.JRTimePeriodDataset;
42 import net.sf.jasperreports.charts.JRTimePeriodSeries;
43 import net.sf.jasperreports.charts.JRTimeSeries;
44 import net.sf.jasperreports.charts.JRTimeSeriesDataset;
45 import net.sf.jasperreports.charts.JRXyzDataset;
46 import net.sf.jasperreports.charts.JRXyzSeries;
47 import net.sf.jasperreports.engine.base.JRBaseFont;
48
49
50
53 public abstract class JRAbstractObjectFactory implements JRVisitor
54 {
55
56
57
60 private Map<Object,Object> objectsMap = new HashMap<Object,Object>();
61 private Object visitResult;
62
63
64
67 protected Object get(Object object)
68 {
69 return objectsMap.get(object);
70 }
71
72
75 public void put(Object object, Object copy)
76 {
77 objectsMap.put(object, copy);
78 }
79
80
81
84 public Object getVisitResult(JRVisitable visitable)
85 {
86 if (visitable != null)
87 {
88 visitable.visit(this);
89 return visitResult;
90 }
91 return null;
92 }
93
94
95
98 protected void setVisitResult(Object visitResult)
99 {
100 this.visitResult = visitResult;
101 }
102
103
104
107 public abstract JRDefaultStyleProvider getDefaultStyleProvider();
108
109
110
113 public abstract JRStyle getStyle(JRStyle style);
114
115
129 public abstract void setStyle(JRStyleSetter setter, JRStyleContainer styleContainer);
130
131
132
135 public JRFont getFont(JRStyleContainer styleContainer, JRFont font)
136 {
137 JRBaseFont baseFont = null;
138
139 if (font != null)
140 {
141 baseFont = (JRBaseFont)get(font);
142 if (baseFont == null)
143 {
144 baseFont = new JRBaseFont(styleContainer, font, this);
145 }
146 }
147
148 return baseFont;
149 }
150
151
152
155 public abstract JRPieDataset getPieDataset(JRPieDataset pieDataset);
156
157
160 public abstract JRPiePlot getPiePlot(JRPiePlot piePlot);
161
162
163
166 public abstract JRPie3DPlot getPie3DPlot(JRPie3DPlot pie3DPlot);
167
168
169
172 public abstract JRCategoryDataset getCategoryDataset(JRCategoryDataset categoryDataset);
173
174
175
178 public abstract JRTimeSeriesDataset getTimeSeriesDataset( JRTimeSeriesDataset timeSeriesDataset );
179
180
183 public abstract JRTimePeriodDataset getTimePeriodDataset( JRTimePeriodDataset timePeriodDataset );
184
185
188 public abstract JRTimePeriodSeries getTimePeriodSeries( JRTimePeriodSeries timePeriodSeries );
189
190
193 public abstract JRTimeSeries getTimeSeries( JRTimeSeries timeSeries );
194
195
198 public abstract JRPieSeries getPieSeries(JRPieSeries pieSeries);
199
200
203 public abstract JRCategorySeries getCategorySeries(JRCategorySeries categorySeries);
204
205
208 public abstract JRXyzDataset getXyzDataset( JRXyzDataset xyzDataset );
209
210
213 public abstract JRXyzSeries getXyzSeries( JRXyzSeries xyzSeries );
214
215
216
219 public abstract JRBarPlot getBarPlot(JRBarPlot barPlot);
220
221
224 public abstract JRBar3DPlot getBar3DPlot( JRBar3DPlot barPlot );
225
226
227
230 public abstract JRLinePlot getLinePlot( JRLinePlot linePlot );
231
232
233
236 public abstract JRAreaPlot getAreaPlot( JRAreaPlot areaPlot );
237
238
239
242 public abstract JRBubblePlot getBubblePlot( JRBubblePlot bubblePlot );
243
244
245
248 public abstract JRCandlestickPlot getCandlestickPlot(JRCandlestickPlot candlestickPlot);
249
250
251
254 public abstract JRConditionalStyle getConditionalStyle(JRConditionalStyle conditionalStyle, JRStyle parentStyle);
255
256 public abstract JRExpression getExpression(JRExpression expression, boolean assignNotUsedId);
257
258 public JRExpression getExpression(JRExpression expression)
259 {
260 return getExpression(expression, false);
261 }
262 }
263