001 /* ===========================================================
002 * JFreeChart : a free chart library for the Java(tm) platform
003 * ===========================================================
004 *
005 * (C) Copyright 2000-2007, 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 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
025 * in the United States and other countries.]
026 *
027 * ---------------------------------
028 * BoxAndWhiskerCategoryDataset.java
029 * ---------------------------------
030 * (C) Copyright 2003, 2007, by David Browning and Contributors.
031 *
032 * Original Author: David Browning (for Australian Institute of Marine
033 * Science);
034 * Contributor(s): -;
035 *
036 * $Id: BoxAndWhiskerCategoryDataset.java,v 1.3.2.2 2007/02/02 15:50:24 mungady Exp $
037 *
038 * Changes
039 * -------
040 * 05-Aug-2003 : Version 1, contributed by David Browning (DG);
041 * 27-Aug-2003 : Renamed getAverageValue --> getMeanValue, changed
042 * getAllOutliers to return a List rather than an array (DG);
043 * ------------- JFREECHART 1.0.x ---------------------------------------------
044 * 02-Feb-2007 : Removed author tags from all over JFreeChart sources (DG);
045 *
046 */
047
048 package org.jfree.data.statistics;
049
050 import java.util.List;
051
052 import org.jfree.data.category.CategoryDataset;
053
054 /**
055 * A category dataset that defines various medians, outliers and an average
056 * value for each item.
057 */
058 public interface BoxAndWhiskerCategoryDataset extends CategoryDataset {
059
060 /**
061 * Returns the mean value for an item.
062 *
063 * @param row the row index (zero-based).
064 * @param column the column index (zero-based).
065 *
066 * @return The mean value.
067 */
068 public Number getMeanValue(int row, int column);
069
070 /**
071 * Returns the average value for an item.
072 *
073 * @param rowKey the row key.
074 * @param columnKey the columnKey.
075 *
076 * @return The average value.
077 */
078 public Number getMeanValue(Comparable rowKey, Comparable columnKey);
079
080 /**
081 * Returns the median value for an item.
082 *
083 * @param row the row index (zero-based).
084 * @param column the column index (zero-based).
085 *
086 * @return The median value.
087 */
088 public Number getMedianValue(int row, int column);
089
090 /**
091 * Returns the median value for an item.
092 *
093 * @param rowKey the row key.
094 * @param columnKey the columnKey.
095 *
096 * @return The median value.
097 */
098 public Number getMedianValue(Comparable rowKey, Comparable columnKey);
099
100 /**
101 * Returns the q1median value for an item.
102 *
103 * @param row the row index (zero-based).
104 * @param column the column index (zero-based).
105 *
106 * @return The q1median value.
107 */
108 public Number getQ1Value(int row, int column);
109
110 /**
111 * Returns the q1median value for an item.
112 *
113 * @param rowKey the row key.
114 * @param columnKey the columnKey.
115 *
116 * @return The q1median value.
117 */
118 public Number getQ1Value(Comparable rowKey, Comparable columnKey);
119
120 /**
121 * Returns the q3median value for an item.
122 *
123 * @param row the row index (zero-based).
124 * @param column the column index (zero-based).
125 *
126 * @return The q3median value.
127 */
128 public Number getQ3Value(int row, int column);
129
130 /**
131 * Returns the q3median value for an item.
132 *
133 * @param rowKey the row key.
134 * @param columnKey the columnKey.
135 *
136 * @return The q3median value.
137 */
138 public Number getQ3Value(Comparable rowKey, Comparable columnKey);
139
140 /**
141 * Returns the minimum regular (non-outlier) value for an item.
142 *
143 * @param row the row index (zero-based).
144 * @param column the column index (zero-based).
145 *
146 * @return The minimum regular value.
147 */
148 public Number getMinRegularValue(int row, int column);
149
150 /**
151 * Returns the minimum regular (non-outlier) value for an item.
152 *
153 * @param rowKey the row key.
154 * @param columnKey the columnKey.
155 *
156 * @return The minimum regular value.
157 */
158 public Number getMinRegularValue(Comparable rowKey, Comparable columnKey);
159
160 /**
161 * Returns the maximum regular (non-outlier) value for an item.
162 *
163 * @param row the row index (zero-based).
164 * @param column the column index (zero-based).
165 *
166 * @return The maximum regular value.
167 */
168 public Number getMaxRegularValue(int row, int column);
169
170 /**
171 * Returns the maximum regular (non-outlier) value for an item.
172 *
173 * @param rowKey the row key.
174 * @param columnKey the columnKey.
175 *
176 * @return The maximum regular value.
177 */
178 public Number getMaxRegularValue(Comparable rowKey, Comparable columnKey);
179
180 /**
181 * Returns the minimum outlier (non-farout) for an item.
182 *
183 * @param row the row index (zero-based).
184 * @param column the column index (zero-based).
185 *
186 * @return The minimum outlier.
187 */
188 public Number getMinOutlier(int row, int column);
189
190 /**
191 * Returns the minimum outlier (non-farout) for an item.
192 *
193 * @param rowKey the row key.
194 * @param columnKey the columnKey.
195 *
196 * @return The minimum outlier.
197 */
198 public Number getMinOutlier(Comparable rowKey, Comparable columnKey);
199
200 /**
201 * Returns the maximum outlier (non-farout) for an item.
202 *
203 * @param row the row index (zero-based).
204 * @param column the column index (zero-based).
205 *
206 * @return The maximum outlier.
207 */
208 public Number getMaxOutlier(int row, int column);
209
210 /**
211 * Returns the maximum outlier (non-farout) for an item.
212 *
213 * @param rowKey the row key.
214 * @param columnKey the columnKey.
215 *
216 * @return The maximum outlier.
217 */
218 public Number getMaxOutlier(Comparable rowKey, Comparable columnKey);
219
220 /**
221 * Returns a list of outlier values for an item. The list may be empty,
222 * but should never be <code>null</code>.
223 *
224 * @param row the row index (zero-based).
225 * @param column the column index (zero-based).
226 *
227 * @return A list of outliers for an item.
228 */
229 public List getOutliers(int row, int column);
230
231 /**
232 * Returns a list of outlier values for an item. The list may be empty,
233 * but should never be <code>null</code>.
234 *
235 * @param rowKey the row key.
236 * @param columnKey the columnKey.
237 *
238 * @return A list of outlier values for an item.
239 */
240 public List getOutliers(Comparable rowKey, Comparable columnKey);
241
242 }