001/* =========================================================== 002 * JFreeChart : a free chart library for the Java(tm) platform 003 * =========================================================== 004 * 005 * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. 006 * 007 * Project Info: http://www.jfree.org/jfreechart/index.html 008 * 009 * This library is free software; you can redistribute it and/or modify it 010 * under the terms of the GNU Lesser General Public License as published by 011 * the Free Software Foundation; either version 2.1 of the License, or 012 * (at your option) any later version. 013 * 014 * This library is distributed in the hope that it will be useful, but 015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 017 * License for more details. 018 * 019 * You should have received a copy of the GNU Lesser General Public 020 * License along with this library; if not, write to the Free Software 021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 022 * USA. 023 * 024 * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 025 * Other names may be trademarks of their respective owners.] 026 * 027 * ------------------- 028 * AxisCollection.java 029 * ------------------- 030 * (C) Copyright 2003-2013, by Object Refinery Limited. 031 * 032 * Original Author: David Gilbert (for Object Refinery Limited); 033 * Contributor(s): -; 034 * 035 * Changes 036 * ------- 037 * 03-Nov-2003 : Added standard header (DG); 038 * 02-Jul-2013 : Use ParamChecks (DG); 039 * 040 */ 041 042package org.jfree.chart.axis; 043 044import java.util.List; 045import org.jfree.chart.util.ParamChecks; 046 047import org.jfree.ui.RectangleEdge; 048 049/** 050 * A collection of axes that have been assigned to the TOP, BOTTOM, LEFT or 051 * RIGHT of a chart. This class is used internally by JFreeChart, you won't 052 * normally need to use it yourself. 053 */ 054public class AxisCollection { 055 056 /** The axes that need to be drawn at the top of the plot area. */ 057 private List axesAtTop; 058 059 /** The axes that need to be drawn at the bottom of the plot area. */ 060 private List axesAtBottom; 061 062 /** The axes that need to be drawn at the left of the plot area. */ 063 private List axesAtLeft; 064 065 /** The axes that need to be drawn at the right of the plot area. */ 066 private List axesAtRight; 067 068 /** 069 * Creates a new empty collection. 070 */ 071 public AxisCollection() { 072 this.axesAtTop = new java.util.ArrayList(); 073 this.axesAtBottom = new java.util.ArrayList(); 074 this.axesAtLeft = new java.util.ArrayList(); 075 this.axesAtRight = new java.util.ArrayList(); 076 } 077 078 /** 079 * Returns a list of the axes (if any) that need to be drawn at the top of 080 * the plot area. 081 * 082 * @return A list of axes. 083 */ 084 public List getAxesAtTop() { 085 return this.axesAtTop; 086 } 087 088 /** 089 * Returns a list of the axes (if any) that need to be drawn at the bottom 090 * of the plot area. 091 * 092 * @return A list of axes. 093 */ 094 public List getAxesAtBottom() { 095 return this.axesAtBottom; 096 } 097 098 /** 099 * Returns a list of the axes (if any) that need to be drawn at the left 100 * of the plot area. 101 * 102 * @return A list of axes. 103 */ 104 public List getAxesAtLeft() { 105 return this.axesAtLeft; 106 } 107 108 /** 109 * Returns a list of the axes (if any) that need to be drawn at the right 110 * of the plot area. 111 * 112 * @return A list of axes. 113 */ 114 public List getAxesAtRight() { 115 return this.axesAtRight; 116 } 117 118 /** 119 * Adds an axis to the collection. 120 * 121 * @param axis the axis (<code>null</code> not permitted). 122 * @param edge the edge of the plot that the axis should be drawn on 123 * (<code>null</code> not permitted). 124 */ 125 public void add(Axis axis, RectangleEdge edge) { 126 ParamChecks.nullNotPermitted(axis, "axis"); 127 ParamChecks.nullNotPermitted(edge, "edge"); 128 if (edge == RectangleEdge.TOP) { 129 this.axesAtTop.add(axis); 130 } 131 else if (edge == RectangleEdge.BOTTOM) { 132 this.axesAtBottom.add(axis); 133 } 134 else if (edge == RectangleEdge.LEFT) { 135 this.axesAtLeft.add(axis); 136 } 137 else if (edge == RectangleEdge.RIGHT) { 138 this.axesAtRight.add(axis); 139 } 140 } 141 142}