/* * See the NOTICE file distributed with this work for additional * information regarding copyright ownership. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package com.xpn.xwiki.plugin.charts.params; import java.awt.Color; import java.awt.Font; import java.awt.Shape; import java.awt.Stroke; import java.awt.geom.Point2D; import java.security.InvalidParameterException; import java.text.DateFormat; import java.text.NumberFormat; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.DateTickMarkPosition; import org.jfree.chart.axis.DateTickUnit; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.RangeType; import org.jfree.ui.HorizontalAlignment; import org.jfree.ui.RectangleAnchor; import org.jfree.ui.RectangleEdge; import org.jfree.ui.RectangleInsets; import org.jfree.ui.VerticalAlignment; import com.xpn.xwiki.plugin.charts.exceptions.MissingMandatoryParamException; import com.xpn.xwiki.plugin.charts.exceptions.ParamException; public class ChartParams { private Map paramMap = new HashMap(); // Map<String,ChartParam> private Map valueMap = new HashMap(); // Map<String,Object> private ChartParams parent; public static final String TYPE = "type"; public static final String SOURCE = "source"; public static final String SERIES = "series"; public static final String HEIGHT = "height"; public static final String WIDTH = "width"; public static final String IMAGE_ATTRIBUTES = "image_attributes"; public static final String LINK_ATTRIBUTES = "link_attributes"; public static final String RENDERER = "renderer"; public static final String RENDERER_COLOR = "renderer_color"; public static final String RENDERER_STROKE = "renderer_stroke"; public static final String RENDERER_SHAPE = "renderer_shape"; public static final String RENDERER_FILL_COLOR = "renderer_fill_color"; public static final String RENDERER_OUTLINE_COLOR = "renderer_outline_color"; public static final String RENDERER_OUTLINE_STROKE = "renderer_outline_stroke"; public static final String RENDERER_ITEM_LABEL_VISIBLE = "renderer_item_label_visible"; public static final String RENDERER_ITEM_LABEL_COLOR = "renderer_item_label_color"; public static final String RENDERER_ITEM_LABEL_FONT = "renderer_item_label_font"; public static final String RENDERER_SERIES_VISIBLE = "series_visible"; public static final String RENDERER_SERIES_VISIBLE_IN_LEGEND = "series_visible_in_legend"; public static final String RENDERER_SERIES_COLORS = "series_colors"; public static final String RENDERER_SERIES_STROKES = "series_strokes"; public static final String RENDERER_SERIES_SHAPES = "series_shapes"; public static final String RENDERER_SERIES_FILL_COLORS = "series_fill_colors"; public static final String RENDERER_SERIES_OUTLINE_COLORS = "series_outline_colors"; public static final String RENDERER_SERIES_OUTLINE_STROKES = "series_outline_strokes"; public static final String RENDERER_SERIES_ITEM_LABEL_VISIBLES = "series_item_label_visibles"; public static final String RENDERER_SERIES_ITEM_LABEL_COLORS = "series_item_label_colors"; public static final String RENDERER_SERIES_ITEM_LABEL_FONTS = "series_item_label_fonts"; public static final String BORDER_VISIBLE = "border_visible"; public static final String BORDER_COLOR = "border_color"; public static final String BORDER_STROKE = "border_stroke"; public static final String TITLE_PREFIX = "title"; public static final String SUBTITLE_PREFIX = "subtitle"; public static final String TITLE_SUFFIX = ""; public static final String TITLE_POSITION_SUFFIX = "_position"; public static final String TITLE_HORIZONTAL_ALIGNMENT_SUFFIX = "_horizontal_alignment"; public static final String TITLE_VERTICAL_ALIGNMENT_SUFFIX = "_vertical_alignment"; public static final String TITLE_COLOR_SUFFIX = "_color"; public static final String TITLE_BACKGROUND_COLOR_SUFFIX = "_background_color"; public static final String TITLE_FONT_SUFFIX = "_font"; public static final String TITLE_PADDING_SUFFIX = "_padding"; public static final String TITLE_URL_SUFFIX = "_url"; public static final String ANTI_ALIAS = "anti_alias"; public static final String BACKGROUND_COLOR = "background_color"; public static final String PLOT_BACKGROUND_COLOR = "plot_background_color"; public static final String PLOT_BACKGROUND_ALPHA = "plot_background_alpha"; public static final String PLOT_FOREGROUND_ALPHA = "plot_foreground_alpha"; public static final String PLOT_INSERTS = "plot_inserts"; public static final String PLOT_OUTLINE_COLOR = "plot_outline_color"; public static final String PLOT_OUTLINE_STROKE = "plot_outline_stroke"; public static final String XYPLOT_ORIENTATION = "plot_orientation"; public static final String XYPLOT_QUADRANT_ORIGIN = "plot_quadrant_origin"; public static final String XYPLOT_QUADRANT_COLORS = "plot_quadrant_colors"; public static final String LEGEND_BACKGROUND_COLOR = "legend_background_color"; public static final String LEGEND_ITEM_FONT = "legend_item_font"; public static final String LEGEND_ITEM_LABEL_PADDING = "legend_item_label_padding"; public static final String LEGEND_ITEM_GRAPHIC_ANCHOR = "legend_item_graphic_anchor"; public static final String LEGEND_ITEM_GRAPHIC_EDGE = "legend_item_graphic_edge"; public static final String LEGEND_ITEM_GRAPHIC_LOCATION = "legend_item_graphic_location"; public static final String LEGEND_ITEM_GRAPHIC_PADDING = "legend_item_graphic_padding"; public static final String AXIS_DOMAIN_PREFIX = "domain_axis_"; public static final String AXIS_RANGE_PREFIX = "range_axis_"; public static final String AXIS_VISIBLE_SUFIX = "visible"; public static final String AXIS_LABEL_SUFFIX = "label"; public static final String AXIS_LABEL_FONT_SUFFIX = "label_font"; public static final String AXIS_LABEL_COLOR_SUFFIX = "label_color"; public static final String AXIS_LABEL_INSERTS_SUFFIX = "label_inserts"; public static final String AXIS_LINE_VISIBLE_SUFFIX = "line_visible"; public static final String AXIS_LINE_COLOR_SUFFIX = "line_color"; public static final String AXIS_LINE_STROKE_SUFFIX = "line_stroke"; public static final String AXIS_TICK_LABEL_VISIBLE_SUFFIX = "tick_label_visible"; public static final String AXIS_TICK_LABEL_FONT_SUFFIX = "tick_label_font"; public static final String AXIS_TICK_LABEL_COLOR_SUFFIX = "tick_label_color"; public static final String AXIS_TICK_LABEL_INSERTS_SUFFIX = "tick_label_inserts"; public static final String AXIS_TICK_MARK_VISIBLE_SUFFIX = "tick_mark_visible"; public static final String AXIS_TICK_MARK_INSIDE_LENGTH_SUFFIX = "tick_mark_inside_length"; public static final String AXIS_TICK_MARK_OUTSIDE_LENGTH_SUFFIX = "tick_mark_outside_length"; public static final String AXIS_TICK_MARK_COLOR_SUFFIX = "tick_mark_color"; public static final String AXIS_TICK_MARK_STROKE_SUFFIX = "tick_mark_stroke"; public static final String PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX = "gridline_visible"; public static final String PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX = "gridline_color"; public static final String PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX = "gridline_stroke"; public static final String VALUE_AXIS_AUTO_RANGE_SUFFIX = "auto_range"; public static final String VALUE_AXIS_AUTO_RANGE_MIN_SIZE_SUFFIX = "auto_range_min_size"; public static final String VALUE_AXIS_AUTO_TICK_UNIT_SUFFIX = "auto_tick_unit"; public static final String VALUE_AXIS_LOWER_BOUND_SUFFIX = "lower_bound"; public static final String VALUE_AXIS_UPPER_BOUND_SUFFIX = "upper_bound"; public static final String AXIS_LOWER_MARGIN_SUFFIX = "lower_margin"; public static final String AXIS_UPPER_MARGIN_SUFFIX = "upper_margin"; public static final String VALUE_AXIS_VERTICAL_TICK_LABELS_SUFFIX = "vertical_tick_labels"; public static final String NUMBER_AXIS_AUTO_RANGE_INCLUDES_ZERO_SUFFIX = "auto_range_includes_zero"; public static final String NUMBER_AXIS_AUTO_RANGE_STICKY_ZERO_SUFFIX = "auto_range_sticky_zero"; public static final String NUMBER_AXIS_RANGE_TYPE_SUFFIX = "range_type"; public static final String NUMBER_AXIS_NUMBER_TICK_UNIT_SUFFIX = "number_tick_unit"; public static final String NUMBER_AXIS_NUMBER_FORMAT_OVERRIDE_SUFFIX = "number_format"; public static final String DATE_AXIS_DATE_FORMAT_OVERRIDE_SUFFIX = "date_format_override"; public static final String DATE_AXIS_UPPER_DATE_SUFFIX = "upper_date"; public static final String DATE_AXIS_LOWER_DATE_SUFFIX = "lower_date"; public static final String DATE_AXIS_DATE_TICK_MARK_POSITION_SUFFIX = "tick_mark_position"; public static final String DATE_AXIS_DATE_TICK_UNIT_SUFFIX = "date_tick_unit"; public static final String CATEGORY_AXIS_CATEGORY_MARGIN_SUFFIX = "category_margin"; public static final String CATEGORY_AXIS_LABEL_POSITIONS_SUFFIX = "label_positions"; public static final String CATEGORY_AXIS_LABEL_POSITION_OFFSET_SUFFIX = "label_position_offset"; public static final String CATEGORY_AXIS_MAXIMUM_LABEL_LINES_SUFFIX = "maximum_label_lines"; public static final String CATEGORY_AXIS_MAXIMUM_LABEL_WIDTH_RATIO_SUFFIX = "maximul_label_width_ratio"; public static final String TIME_PERIOD_CLASS = "time_period"; public static final String DATE_FORMAT = "date_format"; public ChartParams() { this((ChartParams) null); } public ChartParams(Map map) throws ParamException { this(map, null, false); } public ChartParams(Map map, ChartParams parent) throws ParamException { this(map, parent, false); } public ChartParams(Map map, ChartParams parent, boolean discardNumbers) throws ParamException { this(parent); Iterator it = map.keySet().iterator(); while (it.hasNext()) { String name = (String) it.next(); String value = (String) map.get(name); if (discardNumbers) { try { Integer.parseInt(name); } catch (NumberFormatException nfe) { set(name.trim(), value.trim()); } } else { set(name.trim(), value.trim()); } } } public ChartParams(ChartParams parent) { this.parent = parent; addParam(new StringChartParam(TYPE, false)); addParam(new MapChartParam(SOURCE, false)); addParam(new IntegerChartParam(HEIGHT)); addParam(new IntegerChartParam(WIDTH)); addParam(new MapChartParam(LINK_ATTRIBUTES)); addParam(new MapChartParam(IMAGE_ATTRIBUTES)); addParam(new RendererClassChartParam(RENDERER)); addParam(new ColorChartParam(RENDERER_COLOR)); addParam(new StrokeChartParam(RENDERER_STROKE)); addParam(new ShapeChartParam(RENDERER_SHAPE)); addParam(new ColorChartParam(RENDERER_FILL_COLOR)); addParam(new ColorChartParam(RENDERER_OUTLINE_COLOR)); addParam(new StrokeChartParam(RENDERER_OUTLINE_STROKE)); addParam(new BooleanChartParam(RENDERER_ITEM_LABEL_VISIBLE)); addParam(new ColorChartParam(RENDERER_ITEM_LABEL_COLOR)); addParam(new FontChartParam(RENDERER_ITEM_LABEL_FONT)); addParam(new BooleanChartParam(RENDERER_SERIES_VISIBLE)); addParam(new BooleanChartParam(RENDERER_SERIES_VISIBLE_IN_LEGEND)); addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_COLORS))); addParam(new ListChartParam(new StrokeChartParam(RENDERER_SERIES_STROKES))); addParam(new ListChartParam(new ShapeChartParam(RENDERER_SERIES_SHAPES))); addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_FILL_COLORS))); addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_OUTLINE_COLORS))); addParam(new ListChartParam(new StrokeChartParam(RENDERER_SERIES_OUTLINE_STROKES))); addParam(new ListChartParam(new BooleanChartParam(RENDERER_SERIES_ITEM_LABEL_VISIBLES))); addParam(new ListChartParam(new ColorChartParam(RENDERER_SERIES_ITEM_LABEL_COLORS))); addParam(new ListChartParam(new FontChartParam(RENDERER_SERIES_ITEM_LABEL_FONTS))); addParam(new BooleanChartParam(BORDER_VISIBLE)); addParam(new ColorChartParam(BORDER_COLOR)); addParam(new StrokeChartParam(BORDER_STROKE)); addTitleParams(TITLE_PREFIX); addTitleParams(SUBTITLE_PREFIX); addParam(new BooleanChartParam(ANTI_ALIAS)); addParam(new ColorChartParam(BACKGROUND_COLOR)); addParam(new ColorChartParam(PLOT_BACKGROUND_COLOR)); addParam(new FloatChartParam(PLOT_BACKGROUND_ALPHA)); addParam(new FloatChartParam(PLOT_FOREGROUND_ALPHA)); addParam(new RectangleInsetsChartParam(PLOT_INSERTS)); addParam(new ColorChartParam(PLOT_OUTLINE_COLOR)); addParam(new StrokeChartParam(PLOT_OUTLINE_STROKE)); addParam(new PlotOrientationChartParam(XYPLOT_ORIENTATION)); addParam(new Point2DChartParam(XYPLOT_QUADRANT_ORIGIN)); addParam(new ListChartParam(new ColorChartParam(XYPLOT_QUADRANT_COLORS))); addParam(new ColorChartParam(LEGEND_BACKGROUND_COLOR)); addParam(new FontChartParam(LEGEND_ITEM_FONT)); addParam(new RectangleInsetsChartParam(LEGEND_ITEM_LABEL_PADDING)); addParam(new RectangleAnchorChartParam(LEGEND_ITEM_GRAPHIC_ANCHOR)); addParam(new RectangleEdgeChartParam(LEGEND_ITEM_GRAPHIC_EDGE)); addParam(new RectangleAnchorChartParam(LEGEND_ITEM_GRAPHIC_LOCATION)); addParam(new RectangleInsetsChartParam(LEGEND_ITEM_GRAPHIC_PADDING)); addAxisParams(AXIS_DOMAIN_PREFIX); addAxisParams(AXIS_RANGE_PREFIX); addParam(new TimePeriodClassChartParam(TIME_PERIOD_CLASS)); addParam(new DateFormatChartParam(DATE_FORMAT)); } private void addAxisParams(String prefix) { addParam(new BooleanChartParam(prefix + AXIS_VISIBLE_SUFIX)); addParam(new BooleanChartParam(prefix + AXIS_LINE_VISIBLE_SUFFIX)); addParam(new ColorChartParam(prefix + AXIS_LINE_COLOR_SUFFIX)); addParam(new StrokeChartParam(prefix + AXIS_LINE_STROKE_SUFFIX)); addParam(new StringChartParam(prefix + AXIS_LABEL_SUFFIX)); addParam(new FontChartParam(prefix + AXIS_LABEL_FONT_SUFFIX)); addParam(new ColorChartParam(prefix + AXIS_LABEL_COLOR_SUFFIX)); addParam(new RectangleInsetsChartParam(prefix + AXIS_LABEL_INSERTS_SUFFIX)); addParam(new BooleanChartParam(prefix + AXIS_TICK_LABEL_VISIBLE_SUFFIX)); addParam(new FontChartParam(prefix + AXIS_TICK_LABEL_FONT_SUFFIX)); addParam(new ColorChartParam(prefix + AXIS_TICK_LABEL_COLOR_SUFFIX)); addParam(new RectangleInsetsChartParam(prefix + AXIS_TICK_LABEL_INSERTS_SUFFIX)); addParam(new BooleanChartParam(prefix + AXIS_TICK_MARK_VISIBLE_SUFFIX)); addParam(new FloatChartParam(prefix + AXIS_TICK_MARK_INSIDE_LENGTH_SUFFIX)); addParam(new FloatChartParam(prefix + AXIS_TICK_MARK_OUTSIDE_LENGTH_SUFFIX)); addParam(new ColorChartParam(prefix + AXIS_TICK_MARK_COLOR_SUFFIX)); addParam(new StrokeChartParam(prefix + AXIS_TICK_MARK_STROKE_SUFFIX)); addParam(new BooleanChartParam(prefix + PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX)); addParam(new ColorChartParam(prefix + PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX)); addParam(new StrokeChartParam(prefix + PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX)); addParam(new BooleanChartParam(prefix + VALUE_AXIS_AUTO_RANGE_SUFFIX)); addParam(new DoubleChartParam(prefix + VALUE_AXIS_AUTO_RANGE_MIN_SIZE_SUFFIX)); addParam(new BooleanChartParam(prefix + VALUE_AXIS_AUTO_TICK_UNIT_SUFFIX)); addParam(new DoubleChartParam(prefix + VALUE_AXIS_LOWER_BOUND_SUFFIX)); addParam(new DoubleChartParam(prefix + VALUE_AXIS_UPPER_BOUND_SUFFIX)); addParam(new DoubleChartParam(prefix + AXIS_LOWER_MARGIN_SUFFIX)); addParam(new DoubleChartParam(prefix + AXIS_UPPER_MARGIN_SUFFIX)); addParam(new BooleanChartParam(prefix + VALUE_AXIS_VERTICAL_TICK_LABELS_SUFFIX)); addParam(new BooleanChartParam(prefix + NUMBER_AXIS_AUTO_RANGE_INCLUDES_ZERO_SUFFIX)); addParam(new BooleanChartParam(prefix + NUMBER_AXIS_AUTO_RANGE_STICKY_ZERO_SUFFIX)); addParam(new RangeTypeChartParam(prefix + NUMBER_AXIS_RANGE_TYPE_SUFFIX)); addParam(new NumberTickUnitChartParam(prefix + NUMBER_AXIS_NUMBER_TICK_UNIT_SUFFIX)); addParam(new NumberFormatChartParam(prefix + NUMBER_AXIS_NUMBER_FORMAT_OVERRIDE_SUFFIX)); addParam(new DateFormatChartParam(prefix + DATE_AXIS_DATE_FORMAT_OVERRIDE_SUFFIX)); addParam(new DateChartParam(prefix + DATE_AXIS_LOWER_DATE_SUFFIX)); addParam(new DateChartParam(prefix + DATE_AXIS_UPPER_DATE_SUFFIX)); addParam(new DateTickMarkPositionChartParam(prefix + DATE_AXIS_DATE_TICK_MARK_POSITION_SUFFIX)); addParam(new DateTickUnitChartParam(prefix + DATE_AXIS_DATE_TICK_UNIT_SUFFIX)); addParam(new DoubleChartParam(prefix + CATEGORY_AXIS_CATEGORY_MARGIN_SUFFIX)); addParam(new CategoryLabelPositionsChartParam(prefix + CATEGORY_AXIS_LABEL_POSITIONS_SUFFIX)); addParam(new IntegerChartParam(prefix + CATEGORY_AXIS_LABEL_POSITION_OFFSET_SUFFIX)); addParam(new IntegerChartParam(prefix + CATEGORY_AXIS_MAXIMUM_LABEL_LINES_SUFFIX)); addParam(new FloatChartParam(prefix + CATEGORY_AXIS_MAXIMUM_LABEL_WIDTH_RATIO_SUFFIX)); } private void addTitleParams(String prefix) { addParam(new StringChartParam(prefix + TITLE_SUFFIX)); addParam(new ColorChartParam(prefix + TITLE_BACKGROUND_COLOR_SUFFIX)); addParam(new RectangleEdgeChartParam(prefix + TITLE_POSITION_SUFFIX)); addParam(new HorizontalAlignmentChartParam(prefix + TITLE_HORIZONTAL_ALIGNMENT_SUFFIX)); addParam(new VerticalAlignmentChartParam(prefix + TITLE_VERTICAL_ALIGNMENT_SUFFIX)); addParam(new ColorChartParam(prefix + TITLE_COLOR_SUFFIX)); addParam(new FontChartParam(prefix + TITLE_FONT_SUFFIX)); addParam(new RectangleInsetsChartParam(prefix + TITLE_PADDING_SUFFIX)); } public void addParam(ChartParam param) { paramMap.put(param.getName(), param); } public void set(String name, String value) throws ParamException { ChartParam param = (ChartParam) paramMap.get(name); if (param != null) { valueMap.put(name, param.convert(value)); } else { valueMap.put(name, value); } } protected void set(String name, Object obj) throws ParamException { ChartParam param = (ChartParam) paramMap.get(name); if (obj == null || param.getType().isInstance(obj)) { valueMap.put(name, obj); } else { throw new InvalidParameterException("Invalid value type for parameter " + param.getName() + " ; expected type: " + param.getType()); } } public void check() throws ParamException { Iterator it = paramMap.values().iterator(); while (it.hasNext()) { ChartParam param = (ChartParam) it.next(); if (!param.isOptional() && valueMap.get(param.getName()) == null) { throw new MissingMandatoryParamException("No value given for mandatory parameter " + param.getName()); } } } public Object get(String name) { Object result = valueMap.get(name); if (result != null) { return result; } else if (parent != null) { return parent.get(name); } else { return null; } } public String getString(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param == null || param.getType() == String.class) { return (String) get(name); } else { return null; } } public Integer getInteger(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Integer.class) { return (Integer) get(name); } else { return null; } } public Float getFloat(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Float.class) { return (Float) get(name); } else { return null; } } public Double getDouble(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Double.class) { return (Double) get(name); } else { return null; } } public Boolean getBoolean(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Boolean.class) { return (Boolean) get(name); } else { return null; } } public Color getColor(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Color.class) { return (Color) get(name); } else { return null; } } public Stroke getStroke(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Stroke.class) { return (Stroke) get(name); } else { return null; } } public RectangleEdge getRectangleEdge(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == RectangleEdge.class) { return (RectangleEdge) get(name); } else { return null; } } public HorizontalAlignment getHorizontalAlignment(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == HorizontalAlignment.class) { return (HorizontalAlignment) get(name); } else { return null; } } public VerticalAlignment getVerticalAlignment(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == VerticalAlignment.class) { return (VerticalAlignment) get(name); } else { return null; } } public Font getFont(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Font.class) { return (Font) get(name); } else { return null; } } public RectangleInsets getRectangleInsets(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == RectangleInsets.class) { return (RectangleInsets) get(name); } else { return null; } } public RectangleAnchor getRectangleAnchor(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == RectangleAnchor.class) { return (RectangleAnchor) get(name); } else { return null; } } public PlotOrientation getPlotOrientation(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == PlotOrientation.class) { return (PlotOrientation) get(name); } else { return null; } } public Point2D getPoint2D(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Point2D.class) { return (Point2D) get(name); } else { return null; } } public Shape getShape(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Shape.class) { return (Shape) get(name); } else { return null; } } // public Range getRange(String name) { // ChartParam param = (ChartParam)paramMap.get(name); // if (param != null && param.getType() == Range.class) { // return (Range)get(name); // } else { // return null; // } // } public RangeType getRangeType(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == RangeType.class) { return (RangeType) get(name); } else { return null; } } public NumberTickUnit getNumberTickUnit(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == NumberTickUnit.class) { return (NumberTickUnit) get(name); } else { return null; } } public NumberFormat getNumberFormat(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == NumberFormat.class) { return (NumberFormat) get(name); } else { return null; } } public DateFormat getDateFormat(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == DateFormat.class) { return (DateFormat) get(name); } else { return null; } } public Date getDate(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Date.class) { return (Date) get(name); } else { return null; } } public DateTickMarkPosition getDateTickMarkPosition(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == DateTickMarkPosition.class) { return (DateTickMarkPosition) get(name); } else { return null; } } public DateTickUnit getDateTickUnit(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == DateTickUnit.class) { return (DateTickUnit) get(name); } else { return null; } } public Class getClass(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Class.class) { return (Class) get(name); } else { return null; } } public CategoryLabelPositions getCategoryLabelPositions(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == CategoryLabelPositions.class) { return (CategoryLabelPositions) get(name); } else { return null; } } public List getList(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == List.class) { return (List) get(name); } else { return null; } } public Map getMap(String name) { ChartParam param = (ChartParam) paramMap.get(name); if (param != null && param.getType() == Map.class) { return (Map) get(name); } else { return null; } } @Override public String toString() { StringBuilder sb = new StringBuilder(); Iterator it = valueMap.keySet().iterator(); while (it.hasNext()) { String name = (String) it.next(); sb.append(name + "="); sb.append(valueMap.get(name).toString()); sb.append("\n"); } return sb.toString(); } }