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