1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package com.xpn.xwiki.plugin.charts.params

File ChartParams.java

 

Coverage histogram

../../../../../../img/srcFileCovDistChart0.png
83% of files have more coverage

Code metrics

72
255
40
1
786
585
106
0.42
6.38
40
2.65

Classes

Class Line # Actions
ChartParams 51 255 0% 106 367
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package com.xpn.xwiki.plugin.charts.params;
21   
22    import java.awt.Color;
23    import java.awt.Font;
24    import java.awt.Shape;
25    import java.awt.Stroke;
26    import java.awt.geom.Point2D;
27    import java.security.InvalidParameterException;
28    import java.text.DateFormat;
29    import java.text.NumberFormat;
30    import java.util.Date;
31    import java.util.HashMap;
32    import java.util.Iterator;
33    import java.util.List;
34    import java.util.Map;
35   
36    import org.jfree.chart.axis.CategoryLabelPositions;
37    import org.jfree.chart.axis.DateTickMarkPosition;
38    import org.jfree.chart.axis.DateTickUnit;
39    import org.jfree.chart.axis.NumberTickUnit;
40    import org.jfree.chart.plot.PlotOrientation;
41    import org.jfree.data.RangeType;
42    import org.jfree.ui.HorizontalAlignment;
43    import org.jfree.ui.RectangleAnchor;
44    import org.jfree.ui.RectangleEdge;
45    import org.jfree.ui.RectangleInsets;
46    import org.jfree.ui.VerticalAlignment;
47   
48    import com.xpn.xwiki.plugin.charts.exceptions.MissingMandatoryParamException;
49    import com.xpn.xwiki.plugin.charts.exceptions.ParamException;
50   
 
51    public class ChartParams
52    {
53    private Map paramMap = new HashMap(); // Map<String,ChartParam>
54   
55    private Map valueMap = new HashMap(); // Map<String,Object>
56   
57    private ChartParams parent;
58   
59    public static final String TYPE = "type";
60   
61    public static final String SOURCE = "source";
62   
63    public static final String SERIES = "series";
64   
65    public static final String HEIGHT = "height";
66   
67    public static final String WIDTH = "width";
68   
69    public static final String IMAGE_ATTRIBUTES = "image_attributes";
70   
71    public static final String LINK_ATTRIBUTES = "link_attributes";
72   
73    public static final String RENDERER = "renderer";
74   
75    public static final String RENDERER_COLOR = "renderer_color";
76   
77    public static final String RENDERER_STROKE = "renderer_stroke";
78   
79    public static final String RENDERER_SHAPE = "renderer_shape";
80   
81    public static final String RENDERER_FILL_COLOR = "renderer_fill_color";
82   
83    public static final String RENDERER_OUTLINE_COLOR = "renderer_outline_color";
84   
85    public static final String RENDERER_OUTLINE_STROKE = "renderer_outline_stroke";
86   
87    public static final String RENDERER_ITEM_LABEL_VISIBLE = "renderer_item_label_visible";
88   
89    public static final String RENDERER_ITEM_LABEL_COLOR = "renderer_item_label_color";
90   
91    public static final String RENDERER_ITEM_LABEL_FONT = "renderer_item_label_font";
92   
93    public static final String RENDERER_SERIES_VISIBLE = "series_visible";
94   
95    public static final String RENDERER_SERIES_VISIBLE_IN_LEGEND = "series_visible_in_legend";
96   
97    public static final String RENDERER_SERIES_COLORS = "series_colors";
98   
99    public static final String RENDERER_SERIES_STROKES = "series_strokes";
100   
101    public static final String RENDERER_SERIES_SHAPES = "series_shapes";
102   
103    public static final String RENDERER_SERIES_FILL_COLORS = "series_fill_colors";
104   
105    public static final String RENDERER_SERIES_OUTLINE_COLORS = "series_outline_colors";
106   
107    public static final String RENDERER_SERIES_OUTLINE_STROKES = "series_outline_strokes";
108   
109    public static final String RENDERER_SERIES_ITEM_LABEL_VISIBLES = "series_item_label_visibles";
110   
111    public static final String RENDERER_SERIES_ITEM_LABEL_COLORS = "series_item_label_colors";
112   
113    public static final String RENDERER_SERIES_ITEM_LABEL_FONTS = "series_item_label_fonts";
114   
115    public static final String BORDER_VISIBLE = "border_visible";
116   
117    public static final String BORDER_COLOR = "border_color";
118   
119    public static final String BORDER_STROKE = "border_stroke";
120   
121    public static final String TITLE_PREFIX = "title";
122   
123    public static final String SUBTITLE_PREFIX = "subtitle";
124   
125    public static final String TITLE_SUFFIX = "";
126   
127    public static final String TITLE_POSITION_SUFFIX = "_position";
128   
129    public static final String TITLE_HORIZONTAL_ALIGNMENT_SUFFIX = "_horizontal_alignment";
130   
131    public static final String TITLE_VERTICAL_ALIGNMENT_SUFFIX = "_vertical_alignment";
132   
133    public static final String TITLE_COLOR_SUFFIX = "_color";
134   
135    public static final String TITLE_BACKGROUND_COLOR_SUFFIX = "_background_color";
136   
137    public static final String TITLE_FONT_SUFFIX = "_font";
138   
139    public static final String TITLE_PADDING_SUFFIX = "_padding";
140   
141    public static final String TITLE_URL_SUFFIX = "_url";
142   
143    public static final String ANTI_ALIAS = "anti_alias";
144   
145    public static final String BACKGROUND_COLOR = "background_color";
146   
147    public static final String PLOT_BACKGROUND_COLOR = "plot_background_color";
148   
149    public static final String PLOT_BACKGROUND_ALPHA = "plot_background_alpha";
150   
151    public static final String PLOT_FOREGROUND_ALPHA = "plot_foreground_alpha";
152   
153    public static final String PLOT_INSERTS = "plot_inserts";
154   
155    public static final String PLOT_OUTLINE_COLOR = "plot_outline_color";
156   
157    public static final String PLOT_OUTLINE_STROKE = "plot_outline_stroke";
158   
159    public static final String XYPLOT_ORIENTATION = "plot_orientation";
160   
161    public static final String XYPLOT_QUADRANT_ORIGIN = "plot_quadrant_origin";
162   
163    public static final String XYPLOT_QUADRANT_COLORS = "plot_quadrant_colors";
164   
165    public static final String LEGEND_BACKGROUND_COLOR = "legend_background_color";
166   
167    public static final String LEGEND_ITEM_FONT = "legend_item_font";
168   
169    public static final String LEGEND_ITEM_LABEL_PADDING = "legend_item_label_padding";
170   
171    public static final String LEGEND_ITEM_GRAPHIC_ANCHOR = "legend_item_graphic_anchor";
172   
173    public static final String LEGEND_ITEM_GRAPHIC_EDGE = "legend_item_graphic_edge";
174   
175    public static final String LEGEND_ITEM_GRAPHIC_LOCATION = "legend_item_graphic_location";
176   
177    public static final String LEGEND_ITEM_GRAPHIC_PADDING = "legend_item_graphic_padding";
178   
179    public static final String AXIS_DOMAIN_PREFIX = "domain_axis_";
180   
181    public static final String AXIS_RANGE_PREFIX = "range_axis_";
182   
183    public static final String AXIS_VISIBLE_SUFIX = "visible";
184   
185    public static final String AXIS_LABEL_SUFFIX = "label";
186   
187    public static final String AXIS_LABEL_FONT_SUFFIX = "label_font";
188   
189    public static final String AXIS_LABEL_COLOR_SUFFIX = "label_color";
190   
191    public static final String AXIS_LABEL_INSERTS_SUFFIX = "label_inserts";
192   
193    public static final String AXIS_LINE_VISIBLE_SUFFIX = "line_visible";
194   
195    public static final String AXIS_LINE_COLOR_SUFFIX = "line_color";
196   
197    public static final String AXIS_LINE_STROKE_SUFFIX = "line_stroke";
198   
199    public static final String AXIS_TICK_LABEL_VISIBLE_SUFFIX = "tick_label_visible";
200   
201    public static final String AXIS_TICK_LABEL_FONT_SUFFIX = "tick_label_font";
202   
203    public static final String AXIS_TICK_LABEL_COLOR_SUFFIX = "tick_label_color";
204   
205    public static final String AXIS_TICK_LABEL_INSERTS_SUFFIX = "tick_label_inserts";
206   
207    public static final String AXIS_TICK_MARK_VISIBLE_SUFFIX = "tick_mark_visible";
208   
209    public static final String AXIS_TICK_MARK_INSIDE_LENGTH_SUFFIX = "tick_mark_inside_length";
210   
211    public static final String AXIS_TICK_MARK_OUTSIDE_LENGTH_SUFFIX = "tick_mark_outside_length";
212   
213    public static final String AXIS_TICK_MARK_COLOR_SUFFIX = "tick_mark_color";
214   
215    public static final String AXIS_TICK_MARK_STROKE_SUFFIX = "tick_mark_stroke";
216   
217    public static final String PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX = "gridline_visible";
218   
219    public static final String PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX = "gridline_color";
220   
221    public static final String PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX = "gridline_stroke";
222   
223    public static final String VALUE_AXIS_AUTO_RANGE_SUFFIX = "auto_range";
224   
225    public static final String VALUE_AXIS_AUTO_RANGE_MIN_SIZE_SUFFIX = "auto_range_min_size";
226   
227    public static final String VALUE_AXIS_AUTO_TICK_UNIT_SUFFIX = "auto_tick_unit";
228   
229    public static final String VALUE_AXIS_LOWER_BOUND_SUFFIX = "lower_bound";
230   
231    public static final String VALUE_AXIS_UPPER_BOUND_SUFFIX = "upper_bound";
232   
233    public static final String AXIS_LOWER_MARGIN_SUFFIX = "lower_margin";
234   
235    public static final String AXIS_UPPER_MARGIN_SUFFIX = "upper_margin";
236   
237    public static final String VALUE_AXIS_VERTICAL_TICK_LABELS_SUFFIX = "vertical_tick_labels";
238   
239    public static final String NUMBER_AXIS_AUTO_RANGE_INCLUDES_ZERO_SUFFIX = "auto_range_includes_zero";
240   
241    public static final String NUMBER_AXIS_AUTO_RANGE_STICKY_ZERO_SUFFIX = "auto_range_sticky_zero";
242   
243    public static final String NUMBER_AXIS_RANGE_TYPE_SUFFIX = "range_type";
244   
245    public static final String NUMBER_AXIS_NUMBER_TICK_UNIT_SUFFIX = "number_tick_unit";
246   
247    public static final String NUMBER_AXIS_NUMBER_FORMAT_OVERRIDE_SUFFIX = "number_format";
248   
249    public static final String DATE_AXIS_DATE_FORMAT_OVERRIDE_SUFFIX = "date_format_override";
250   
251    public static final String DATE_AXIS_UPPER_DATE_SUFFIX = "upper_date";
252   
253    public static final String DATE_AXIS_LOWER_DATE_SUFFIX = "lower_date";
254   
255    public static final String DATE_AXIS_DATE_TICK_MARK_POSITION_SUFFIX = "tick_mark_position";
256   
257    public static final String DATE_AXIS_DATE_TICK_UNIT_SUFFIX = "date_tick_unit";
258   
259    public static final String CATEGORY_AXIS_CATEGORY_MARGIN_SUFFIX = "category_margin";
260   
261    public static final String CATEGORY_AXIS_LABEL_POSITIONS_SUFFIX = "label_positions";
262   
263    public static final String CATEGORY_AXIS_LABEL_POSITION_OFFSET_SUFFIX = "label_position_offset";
264   
265    public static final String CATEGORY_AXIS_MAXIMUM_LABEL_LINES_SUFFIX = "maximum_label_lines";
266   
267    public static final String CATEGORY_AXIS_MAXIMUM_LABEL_WIDTH_RATIO_SUFFIX = "maximul_label_width_ratio";
268   
269    public static final String TIME_PERIOD_CLASS = "time_period";
270   
271    public static final String DATE_FORMAT = "date_format";
272   
 
273  0 toggle public ChartParams()
274    {
275  0 this((ChartParams) null);
276    }
277   
 
278  0 toggle public ChartParams(Map map) throws ParamException
279    {
280  0 this(map, null, false);
281    }
282   
 
283  0 toggle public ChartParams(Map map, ChartParams parent) throws ParamException
284    {
285  0 this(map, parent, false);
286    }
287   
 
288  0 toggle public ChartParams(Map map, ChartParams parent, boolean discardNumbers) throws ParamException
289    {
290  0 this(parent);
291  0 Iterator it = map.keySet().iterator();
292  0 while (it.hasNext()) {
293  0 String name = (String) it.next();
294  0 String value = (String) map.get(name);
295  0 if (discardNumbers) {
296  0 try {
297  0 Integer.parseInt(name);
298    } catch (NumberFormatException nfe) {
299  0 set(name.trim(), value.trim());
300    }
301    } else {
302  0 set(name.trim(), value.trim());
303    }
304    }
305    }
306   
 
307  0 toggle public ChartParams(ChartParams parent)
308    {
309  0 this.parent = parent;
310  0 addParam(new StringChartParam(TYPE, false));
311  0 addParam(new MapChartParam(SOURCE, false));
312   
313  0 addParam(new IntegerChartParam(HEIGHT));
314  0 addParam(new IntegerChartParam(WIDTH));
315  0 addParam(new MapChartParam(LINK_ATTRIBUTES));
316  0 addParam(new MapChartParam(IMAGE_ATTRIBUTES));
317   
318  0 addParam(new RendererClassChartParam(RENDERER));
319  0 addParam(new ColorChartParam(RENDERER_COLOR));
320  0 addParam(new StrokeChartParam(RENDERER_STROKE));
321  0 addParam(new ShapeChartParam(RENDERER_SHAPE));
322  0 addParam(new ColorChartParam(RENDERER_FILL_COLOR));
323  0 addParam(new ColorChartParam(RENDERER_OUTLINE_COLOR));
324  0 addParam(new StrokeChartParam(RENDERER_OUTLINE_STROKE));
325  0 addParam(new BooleanChartParam(RENDERER_ITEM_LABEL_VISIBLE));
326  0 addParam(new ColorChartParam(RENDERER_ITEM_LABEL_COLOR));
327  0 addParam(new FontChartParam(RENDERER_ITEM_LABEL_FONT));
328  0 addParam(new BooleanChartParam(RENDERER_SERIES_VISIBLE));
329  0 addParam(new BooleanChartParam(RENDERER_SERIES_VISIBLE_IN_LEGEND));
330   
331  0 addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_COLORS)));
332  0 addParam(new ListChartParam(new StrokeChartParam(RENDERER_SERIES_STROKES)));
333  0 addParam(new ListChartParam(new ShapeChartParam(RENDERER_SERIES_SHAPES)));
334  0 addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_FILL_COLORS)));
335  0 addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_OUTLINE_COLORS)));
336  0 addParam(new ListChartParam(new StrokeChartParam(RENDERER_SERIES_OUTLINE_STROKES)));
337  0 addParam(new ListChartParam(new BooleanChartParam(RENDERER_SERIES_ITEM_LABEL_VISIBLES)));
338  0 addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_ITEM_LABEL_COLORS)));
339  0 addParam(new ListChartParam(new FontChartParam(RENDERER_SERIES_ITEM_LABEL_FONTS)));
340   
341  0 addParam(new BooleanChartParam(BORDER_VISIBLE));
342  0 addParam(new ColorChartParam(BORDER_COLOR));
343  0 addParam(new StrokeChartParam(BORDER_STROKE));
344   
345  0 addTitleParams(TITLE_PREFIX);
346  0 addTitleParams(SUBTITLE_PREFIX);
347   
348  0 addParam(new BooleanChartParam(ANTI_ALIAS));
349  0 addParam(new ColorChartParam(BACKGROUND_COLOR));
350   
351  0 addParam(new ColorChartParam(PLOT_BACKGROUND_COLOR));
352  0 addParam(new FloatChartParam(PLOT_BACKGROUND_ALPHA));
353  0 addParam(new FloatChartParam(PLOT_FOREGROUND_ALPHA));
354  0 addParam(new RectangleInsetsChartParam(PLOT_INSERTS));
355  0 addParam(new ColorChartParam(PLOT_OUTLINE_COLOR));
356  0 addParam(new StrokeChartParam(PLOT_OUTLINE_STROKE));
357   
358  0 addParam(new PlotOrientationChartParam(XYPLOT_ORIENTATION));
359  0 addParam(new Point2DChartParam(XYPLOT_QUADRANT_ORIGIN));
360  0 addParam(new ListChartParam(new ColorChartParam(XYPLOT_QUADRANT_COLORS)));
361   
362  0 addParam(new ColorChartParam(LEGEND_BACKGROUND_COLOR));
363  0 addParam(new FontChartParam(LEGEND_ITEM_FONT));
364  0 addParam(new RectangleInsetsChartParam(LEGEND_ITEM_LABEL_PADDING));
365  0 addParam(new RectangleAnchorChartParam(LEGEND_ITEM_GRAPHIC_ANCHOR));
366  0 addParam(new RectangleEdgeChartParam(LEGEND_ITEM_GRAPHIC_EDGE));
367  0 addParam(new RectangleAnchorChartParam(LEGEND_ITEM_GRAPHIC_LOCATION));
368  0 addParam(new RectangleInsetsChartParam(LEGEND_ITEM_GRAPHIC_PADDING));
369   
370  0 addAxisParams(AXIS_DOMAIN_PREFIX);
371  0 addAxisParams(AXIS_RANGE_PREFIX);
372   
373  0 addParam(new TimePeriodClassChartParam(TIME_PERIOD_CLASS));
374  0 addParam(new DateFormatChartParam(DATE_FORMAT));
375    }
376   
 
377  0 toggle private void addAxisParams(String prefix)
378    {
379  0 addParam(new BooleanChartParam(prefix + AXIS_VISIBLE_SUFIX));
380   
381  0 addParam(new BooleanChartParam(prefix + AXIS_LINE_VISIBLE_SUFFIX));
382  0 addParam(new ColorChartParam(prefix + AXIS_LINE_COLOR_SUFFIX));
383  0 addParam(new StrokeChartParam(prefix + AXIS_LINE_STROKE_SUFFIX));
384   
385  0 addParam(new StringChartParam(prefix + AXIS_LABEL_SUFFIX));
386  0 addParam(new FontChartParam(prefix + AXIS_LABEL_FONT_SUFFIX));
387  0 addParam(new ColorChartParam(prefix + AXIS_LABEL_COLOR_SUFFIX));
388  0 addParam(new RectangleInsetsChartParam(prefix + AXIS_LABEL_INSERTS_SUFFIX));
389   
390  0 addParam(new BooleanChartParam(prefix + AXIS_TICK_LABEL_VISIBLE_SUFFIX));
391  0 addParam(new FontChartParam(prefix + AXIS_TICK_LABEL_FONT_SUFFIX));
392  0 addParam(new ColorChartParam(prefix + AXIS_TICK_LABEL_COLOR_SUFFIX));
393  0 addParam(new RectangleInsetsChartParam(prefix + AXIS_TICK_LABEL_INSERTS_SUFFIX));
394   
395  0 addParam(new BooleanChartParam(prefix + AXIS_TICK_MARK_VISIBLE_SUFFIX));
396  0 addParam(new FloatChartParam(prefix + AXIS_TICK_MARK_INSIDE_LENGTH_SUFFIX));
397  0 addParam(new FloatChartParam(prefix + AXIS_TICK_MARK_OUTSIDE_LENGTH_SUFFIX));
398  0 addParam(new ColorChartParam(prefix + AXIS_TICK_MARK_COLOR_SUFFIX));
399  0 addParam(new StrokeChartParam(prefix + AXIS_TICK_MARK_STROKE_SUFFIX));
400   
401  0 addParam(new BooleanChartParam(prefix + PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX));
402  0 addParam(new ColorChartParam(prefix + PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX));
403  0 addParam(new StrokeChartParam(prefix + PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX));
404   
405  0 addParam(new BooleanChartParam(prefix + VALUE_AXIS_AUTO_RANGE_SUFFIX));
406  0 addParam(new DoubleChartParam(prefix + VALUE_AXIS_AUTO_RANGE_MIN_SIZE_SUFFIX));
407  0 addParam(new BooleanChartParam(prefix + VALUE_AXIS_AUTO_TICK_UNIT_SUFFIX));
408  0 addParam(new DoubleChartParam(prefix + VALUE_AXIS_LOWER_BOUND_SUFFIX));
409  0 addParam(new DoubleChartParam(prefix + VALUE_AXIS_UPPER_BOUND_SUFFIX));
410  0 addParam(new DoubleChartParam(prefix + AXIS_LOWER_MARGIN_SUFFIX));
411  0 addParam(new DoubleChartParam(prefix + AXIS_UPPER_MARGIN_SUFFIX));
412  0 addParam(new BooleanChartParam(prefix + VALUE_AXIS_VERTICAL_TICK_LABELS_SUFFIX));
413   
414  0 addParam(new BooleanChartParam(prefix + NUMBER_AXIS_AUTO_RANGE_INCLUDES_ZERO_SUFFIX));
415  0 addParam(new BooleanChartParam(prefix + NUMBER_AXIS_AUTO_RANGE_STICKY_ZERO_SUFFIX));
416  0 addParam(new RangeTypeChartParam(prefix + NUMBER_AXIS_RANGE_TYPE_SUFFIX));
417  0 addParam(new NumberTickUnitChartParam(prefix + NUMBER_AXIS_NUMBER_TICK_UNIT_SUFFIX));
418  0 addParam(new NumberFormatChartParam(prefix + NUMBER_AXIS_NUMBER_FORMAT_OVERRIDE_SUFFIX));
419   
420  0 addParam(new DateFormatChartParam(prefix + DATE_AXIS_DATE_FORMAT_OVERRIDE_SUFFIX));
421  0 addParam(new DateChartParam(prefix + DATE_AXIS_LOWER_DATE_SUFFIX));
422  0 addParam(new DateChartParam(prefix + DATE_AXIS_UPPER_DATE_SUFFIX));
423  0 addParam(new DateTickMarkPositionChartParam(prefix + DATE_AXIS_DATE_TICK_MARK_POSITION_SUFFIX));
424  0 addParam(new DateTickUnitChartParam(prefix + DATE_AXIS_DATE_TICK_UNIT_SUFFIX));
425   
426  0 addParam(new DoubleChartParam(prefix + CATEGORY_AXIS_CATEGORY_MARGIN_SUFFIX));
427  0 addParam(new CategoryLabelPositionsChartParam(prefix + CATEGORY_AXIS_LABEL_POSITIONS_SUFFIX));
428  0 addParam(new IntegerChartParam(prefix + CATEGORY_AXIS_LABEL_POSITION_OFFSET_SUFFIX));
429  0 addParam(new IntegerChartParam(prefix + CATEGORY_AXIS_MAXIMUM_LABEL_LINES_SUFFIX));
430  0 addParam(new FloatChartParam(prefix + CATEGORY_AXIS_MAXIMUM_LABEL_WIDTH_RATIO_SUFFIX));
431    }
432   
 
433  0 toggle private void addTitleParams(String prefix)
434    {
435  0 addParam(new StringChartParam(prefix + TITLE_SUFFIX));
436  0 addParam(new ColorChartParam(prefix + TITLE_BACKGROUND_COLOR_SUFFIX));
437  0 addParam(new RectangleEdgeChartParam(prefix + TITLE_POSITION_SUFFIX));
438  0 addParam(new HorizontalAlignmentChartParam(prefix + TITLE_HORIZONTAL_ALIGNMENT_SUFFIX));
439  0 addParam(new VerticalAlignmentChartParam(prefix + TITLE_VERTICAL_ALIGNMENT_SUFFIX));
440  0 addParam(new ColorChartParam(prefix + TITLE_COLOR_SUFFIX));
441  0 addParam(new FontChartParam(prefix + TITLE_FONT_SUFFIX));
442  0 addParam(new RectangleInsetsChartParam(prefix + TITLE_PADDING_SUFFIX));
443    }
444   
 
445  0 toggle public void addParam(ChartParam param)
446    {
447  0 paramMap.put(param.getName(), param);
448    }
449   
 
450  0 toggle public void set(String name, String value) throws ParamException
451    {
452  0 ChartParam param = (ChartParam) paramMap.get(name);
453  0 if (param != null) {
454  0 valueMap.put(name, param.convert(value));
455    } else {
456  0 valueMap.put(name, value);
457    }
458    }
459   
 
460  0 toggle protected void set(String name, Object obj) throws ParamException
461    {
462  0 ChartParam param = (ChartParam) paramMap.get(name);
463  0 if (obj == null || param.getType().isInstance(obj)) {
464  0 valueMap.put(name, obj);
465    } else {
466  0 throw new InvalidParameterException("Invalid value type for parameter " + param.getName()
467    + " ; expected type: " + param.getType());
468    }
469    }
470   
 
471  0 toggle public void check() throws ParamException
472    {
473  0 Iterator it = paramMap.values().iterator();
474  0 while (it.hasNext()) {
475  0 ChartParam param = (ChartParam) it.next();
476  0 if (!param.isOptional() && valueMap.get(param.getName()) == null) {
477  0 throw new MissingMandatoryParamException("No value given for mandatory parameter " + param.getName());
478    }
479    }
480    }
481   
 
482  0 toggle public Object get(String name)
483    {
484  0 Object result = valueMap.get(name);
485  0 if (result != null) {
486  0 return result;
487  0 } else if (parent != null) {
488  0 return parent.get(name);
489    } else {
490  0 return null;
491    }
492    }
493   
 
494  0 toggle public String getString(String name)
495    {
496  0 ChartParam param = (ChartParam) paramMap.get(name);
497  0 if (param == null || param.getType() == String.class) {
498  0 return (String) get(name);
499    } else {
500  0 return null;
501    }
502    }
503   
 
504  0 toggle public Integer getInteger(String name)
505    {
506  0 ChartParam param = (ChartParam) paramMap.get(name);
507  0 if (param != null && param.getType() == Integer.class) {
508  0 return (Integer) get(name);
509    } else {
510  0 return null;
511    }
512    }
513   
 
514  0 toggle public Float getFloat(String name)
515    {
516  0 ChartParam param = (ChartParam) paramMap.get(name);
517  0 if (param != null && param.getType() == Float.class) {
518  0 return (Float) get(name);
519    } else {
520  0 return null;
521    }
522    }
523   
 
524  0 toggle public Double getDouble(String name)
525    {
526  0 ChartParam param = (ChartParam) paramMap.get(name);
527  0 if (param != null && param.getType() == Double.class) {
528  0 return (Double) get(name);
529    } else {
530  0 return null;
531    }
532    }
533   
 
534  0 toggle public Boolean getBoolean(String name)
535    {
536  0 ChartParam param = (ChartParam) paramMap.get(name);
537  0 if (param != null && param.getType() == Boolean.class) {
538  0 return (Boolean) get(name);
539    } else {
540  0 return null;
541    }
542    }
543   
 
544  0 toggle public Color getColor(String name)
545    {
546  0 ChartParam param = (ChartParam) paramMap.get(name);
547  0 if (param != null && param.getType() == Color.class) {
548  0 return (Color) get(name);
549    } else {
550  0 return null;
551    }
552    }
553   
 
554  0 toggle public Stroke getStroke(String name)
555    {
556  0 ChartParam param = (ChartParam) paramMap.get(name);
557  0 if (param != null && param.getType() == Stroke.class) {
558  0 return (Stroke) get(name);
559    } else {
560  0 return null;
561    }
562    }
563   
 
564  0 toggle public RectangleEdge getRectangleEdge(String name)
565    {
566  0 ChartParam param = (ChartParam) paramMap.get(name);
567  0 if (param != null && param.getType() == RectangleEdge.class) {
568  0 return (RectangleEdge) get(name);
569    } else {
570  0 return null;
571    }
572    }
573   
 
574  0 toggle public HorizontalAlignment getHorizontalAlignment(String name)
575    {
576  0 ChartParam param = (ChartParam) paramMap.get(name);
577  0 if (param != null && param.getType() == HorizontalAlignment.class) {
578  0 return (HorizontalAlignment) get(name);
579    } else {
580  0 return null;
581    }
582    }
583   
 
584  0 toggle public VerticalAlignment getVerticalAlignment(String name)
585    {
586  0 ChartParam param = (ChartParam) paramMap.get(name);
587  0 if (param != null && param.getType() == VerticalAlignment.class) {
588  0 return (VerticalAlignment) get(name);
589    } else {
590  0 return null;
591    }
592    }
593   
 
594  0 toggle public Font getFont(String name)
595    {
596  0 ChartParam param = (ChartParam) paramMap.get(name);
597  0 if (param != null && param.getType() == Font.class) {
598  0 return (Font) get(name);
599    } else {
600  0 return null;
601    }
602    }
603   
 
604  0 toggle public RectangleInsets getRectangleInsets(String name)
605    {
606  0 ChartParam param = (ChartParam) paramMap.get(name);
607  0 if (param != null && param.getType() == RectangleInsets.class) {
608  0 return (RectangleInsets) get(name);
609    } else {
610  0 return null;
611    }
612    }
613   
 
614  0 toggle public RectangleAnchor getRectangleAnchor(String name)
615    {
616  0 ChartParam param = (ChartParam) paramMap.get(name);
617  0 if (param != null && param.getType() == RectangleAnchor.class) {
618  0 return (RectangleAnchor) get(name);
619    } else {
620  0 return null;
621    }
622    }
623   
 
624  0 toggle public PlotOrientation getPlotOrientation(String name)
625    {
626  0 ChartParam param = (ChartParam) paramMap.get(name);
627  0 if (param != null && param.getType() == PlotOrientation.class) {
628  0 return (PlotOrientation) get(name);
629    } else {
630  0 return null;
631    }
632    }
633   
 
634  0 toggle public Point2D getPoint2D(String name)
635    {
636  0 ChartParam param = (ChartParam) paramMap.get(name);
637  0 if (param != null && param.getType() == Point2D.class) {
638  0 return (Point2D) get(name);
639    } else {
640  0 return null;
641    }
642    }
643   
 
644  0 toggle public Shape getShape(String name)
645    {
646  0 ChartParam param = (ChartParam) paramMap.get(name);
647  0 if (param != null && param.getType() == Shape.class) {
648  0 return (Shape) get(name);
649    } else {
650  0 return null;
651    }
652    }
653   
654    // public Range getRange(String name) {
655    // ChartParam param = (ChartParam)paramMap.get(name);
656    // if (param != null && param.getType() == Range.class) {
657    // return (Range)get(name);
658    // } else {
659    // return null;
660    // }
661    // }
662   
 
663  0 toggle public RangeType getRangeType(String name)
664    {
665  0 ChartParam param = (ChartParam) paramMap.get(name);
666  0 if (param != null && param.getType() == RangeType.class) {
667  0 return (RangeType) get(name);
668    } else {
669  0 return null;
670    }
671    }
672   
 
673  0 toggle public NumberTickUnit getNumberTickUnit(String name)
674    {
675  0 ChartParam param = (ChartParam) paramMap.get(name);
676  0 if (param != null && param.getType() == NumberTickUnit.class) {
677  0 return (NumberTickUnit) get(name);
678    } else {
679  0 return null;
680    }
681    }
682   
 
683  0 toggle public NumberFormat getNumberFormat(String name)
684    {
685  0 ChartParam param = (ChartParam) paramMap.get(name);
686  0 if (param != null && param.getType() == NumberFormat.class) {
687  0 return (NumberFormat) get(name);
688    } else {
689  0 return null;
690    }
691    }
692   
 
693  0 toggle public DateFormat getDateFormat(String name)
694    {
695  0 ChartParam param = (ChartParam) paramMap.get(name);
696  0 if (param != null && param.getType() == DateFormat.class) {
697  0 return (DateFormat) get(name);
698    } else {
699  0 return null;
700    }
701    }
702   
 
703  0 toggle public Date getDate(String name)
704    {
705  0 ChartParam param = (ChartParam) paramMap.get(name);
706  0 if (param != null && param.getType() == Date.class) {
707  0 return (Date) get(name);
708    } else {
709  0 return null;
710    }
711    }
712   
 
713  0 toggle public DateTickMarkPosition getDateTickMarkPosition(String name)
714    {
715  0 ChartParam param = (ChartParam) paramMap.get(name);
716  0 if (param != null && param.getType() == DateTickMarkPosition.class) {
717  0 return (DateTickMarkPosition) get(name);
718    } else {
719  0 return null;
720    }
721    }
722   
 
723  0 toggle public DateTickUnit getDateTickUnit(String name)
724    {
725  0 ChartParam param = (ChartParam) paramMap.get(name);
726  0 if (param != null && param.getType() == DateTickUnit.class) {
727  0 return (DateTickUnit) get(name);
728    } else {
729  0 return null;
730    }
731    }
732   
 
733  0 toggle public Class getClass(String name)
734    {
735  0 ChartParam param = (ChartParam) paramMap.get(name);
736  0 if (param != null && param.getType() == Class.class) {
737  0 return (Class) get(name);
738    } else {
739  0 return null;
740    }
741    }
742   
 
743  0 toggle public CategoryLabelPositions getCategoryLabelPositions(String name)
744    {
745  0 ChartParam param = (ChartParam) paramMap.get(name);
746  0 if (param != null && param.getType() == CategoryLabelPositions.class) {
747  0 return (CategoryLabelPositions) get(name);
748    } else {
749  0 return null;
750    }
751    }
752   
 
753  0 toggle public List getList(String name)
754    {
755  0 ChartParam param = (ChartParam) paramMap.get(name);
756  0 if (param != null && param.getType() == List.class) {
757  0 return (List) get(name);
758    } else {
759  0 return null;
760    }
761    }
762   
 
763  0 toggle public Map getMap(String name)
764    {
765  0 ChartParam param = (ChartParam) paramMap.get(name);
766  0 if (param != null && param.getType() == Map.class) {
767  0 return (Map) get(name);
768    } else {
769  0 return null;
770    }
771    }
772   
 
773  0 toggle @Override
774    public String toString()
775    {
776  0 StringBuilder sb = new StringBuilder();
777  0 Iterator it = valueMap.keySet().iterator();
778  0 while (it.hasNext()) {
779  0 String name = (String) it.next();
780  0 sb.append(name + "=");
781  0 sb.append(valueMap.get(name).toString());
782  0 sb.append("\n");
783    }
784  0 return sb.toString();
785    }
786    }