A convenience class that provides a default implementation of the
interface.
The standard constructor accepts data in a two dimensional array where the
first dimension is the series, and the second dimension is the category.
| Constructor: |
public DefaultIntervalCategoryDataset(double[][] starts,
double[][] ends) {
this(DataUtilities.createNumberArray2D(starts),
DataUtilities.createNumberArray2D(ends));
}
Creates a new dataset using the specified data values and automatically
generated series and category keys. Parameters:
starts - the starting values for the intervals (null
not permitted).
ends - the ending values for the intervals (null not
permitted).
|
public DefaultIntervalCategoryDataset(Number[][] starts,
Number[][] ends) {
this(null, null, starts, ends);
}
Parameters:
starts - the start values data.
ends - the end values data.
|
public DefaultIntervalCategoryDataset(String[] seriesNames,
Number[][] starts,
Number[][] ends) {
this(seriesNames, null, starts, ends);
}
Constructs a DefaultIntervalCategoryDataset, populates it with data
from the arrays, and uses the supplied names for the series.
Category names are generated automatically ("Category 1", "Category 2",
etc). Parameters:
seriesNames - the series names (if null, series names
will be generated automatically).
starts - the start values data, indexed as data[series][category].
ends - the end values data, indexed as data[series][category].
|
public DefaultIntervalCategoryDataset(Comparable[] seriesKeys,
Comparable[] categoryKeys,
Number[][] starts,
Number[][] ends) {
this.startData = starts;
this.endData = ends;
if (starts != null && ends != null) {
String baseName = "org.jfree.data.resources.DataPackageResources";
ResourceBundle resources = ResourceBundle.getBundle(baseName);
int seriesCount = starts.length;
if (seriesCount != ends.length) {
String errMsg = "DefaultIntervalCategoryDataset: the number "
+ "of series in the start value dataset does "
+ "not match the number of series in the end "
+ "value dataset.";
throw new IllegalArgumentException(errMsg);
}
if (seriesCount > 0) {
// set up the series names...
if (seriesKeys != null) {
if (seriesKeys.length != seriesCount) {
throw new IllegalArgumentException(
"The number of series keys does not "
+ "match the number of series in the data.");
}
this.seriesKeys = seriesKeys;
}
else {
String prefix = resources.getString(
"series.default-prefix") + " ";
this.seriesKeys = generateKeys(seriesCount, prefix);
}
// set up the category names...
int categoryCount = starts[0].length;
if (categoryCount != ends[0].length) {
String errMsg = "DefaultIntervalCategoryDataset: the "
+ "number of categories in the start value "
+ "dataset does not match the number of "
+ "categories in the end value dataset.";
throw new IllegalArgumentException(errMsg);
}
if (categoryKeys != null) {
if (categoryKeys.length != categoryCount) {
throw new IllegalArgumentException(
"The number of category keys does not match "
+ "the number of categories in the data.");
}
this.categoryKeys = categoryKeys;
}
else {
String prefix = resources.getString(
"categories.default-prefix") + " ";
this.categoryKeys = generateKeys(categoryCount, prefix);
}
}
else {
this.seriesKeys = new Comparable[0];
this.categoryKeys = new Comparable[0];
}
}
}
Constructs a DefaultIntervalCategoryDataset, populates it with data
from the arrays, and uses the supplied names for the series and the
supplied objects for the categories. Parameters:
seriesKeys - the series keys (if null, series keys
will be generated automatically).
categoryKeys - the category keys (if null, category
keys will be generated automatically).
starts - the start values data, indexed as data[series][category].
ends - the end values data, indexed as data[series][category].
|
| Method from org.jfree.data.category.DefaultIntervalCategoryDataset Detail: |
public Object clone() throws CloneNotSupportedException {
DefaultIntervalCategoryDataset clone
= (DefaultIntervalCategoryDataset) super.clone();
clone.categoryKeys = (Comparable[]) this.categoryKeys.clone();
clone.seriesKeys = (Comparable[]) this.seriesKeys.clone();
clone.startData = clone(this.startData);
clone.endData = clone(this.endData);
return clone;
}
Returns a clone of this dataset. |
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof DefaultIntervalCategoryDataset)) {
return false;
}
DefaultIntervalCategoryDataset that
= (DefaultIntervalCategoryDataset) obj;
if (!Arrays.equals(this.seriesKeys, that.seriesKeys)) {
return false;
}
if (!Arrays.equals(this.categoryKeys, that.categoryKeys)) {
return false;
}
if (!equal(this.startData, that.startData)) {
return false;
}
if (!equal(this.endData, that.endData)) {
return false;
}
// seem to be the same...
return true;
}
Tests this dataset for equality with an arbitrary object. |
public List getCategories() {
return getColumnKeys();
} Deprecated! Use - #getColumnKeys() instead.
Returns a list of the categories in the dataset. |
public int getCategoryCount() {
int result = 0;
if (this.startData != null) {
if (getSeriesCount() > 0) {
result = this.startData[0].length;
}
}
return result;
}
Returns the number of categories in the dataset. |
public int getCategoryIndex(Comparable category) {
int result = -1;
for (int i = 0; i < this.categoryKeys.length; i++) {
if (category.equals(this.categoryKeys[i])) {
result = i;
break;
}
}
return result;
}
Returns the index for the given category. |
public int getColumnCount() {
return this.categoryKeys.length;
}
Returns the number of categories in the dataset. This method is part of
the CategoryDataset interface. |
public int getColumnIndex(Comparable columnKey) {
if (columnKey == null) {
throw new IllegalArgumentException("Null 'columnKey' argument.");
}
return getCategoryIndex(columnKey);
}
|
public Comparable getColumnKey(int column) {
return this.categoryKeys[column];
}
|
public List getColumnKeys() {
// the CategoryDataset interface expects a list of categories, but
// we've stored them in an array...
if (this.categoryKeys == null) {
return new ArrayList();
}
else {
return Collections.unmodifiableList(Arrays.asList(
this.categoryKeys));
}
}
Returns a list of the categories in the dataset. This method supports
the CategoryDataset interface. |
public Number getEndValue(Comparable series,
Comparable category) {
int seriesIndex = getSeriesIndex(series);
if (seriesIndex < 0) {
throw new UnknownKeyException("Unknown 'series' key.");
}
int itemIndex = getColumnIndex(category);
if (itemIndex < 0) {
throw new UnknownKeyException("Unknown 'category' key.");
}
return getEndValue(seriesIndex, itemIndex);
}
Returns the end data value for one category in a series. |
public Number getEndValue(int series,
int category) {
if ((series < 0) || (series >= getSeriesCount())) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.getValue(): "
+ "series index out of range.");
}
if ((category < 0) || (category >= getCategoryCount())) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.getValue(): "
+ "category index out of range.");
}
return this.endData[series][category];
}
Returns the end data value for one category in a series. |
public int getItemCount() {
return this.categoryKeys.length;
} Deprecated! Use - #getCategoryCount() instead.
|
public int getRowCount() {
return this.seriesKeys.length;
}
Returns the number of series in the dataset (possibly zero). |
public int getRowIndex(Comparable rowKey) {
return getSeriesIndex(rowKey);
}
|
public Comparable getRowKey(int row) {
if ((row >= getRowCount()) || (row < 0)) {
throw new IllegalArgumentException(
"The 'row' argument is out of bounds.");
}
return this.seriesKeys[row];
}
Returns the name of the specified series. |
public List getRowKeys() {
// the CategoryDataset interface expects a list of series, but
// we've stored them in an array...
if (this.seriesKeys == null) {
return new java.util.ArrayList();
}
else {
return Collections.unmodifiableList(Arrays.asList(this.seriesKeys));
}
}
Returns a list of the series in the dataset. This method supports the
CategoryDataset interface. |
public List getSeries() {
if (this.seriesKeys == null) {
return new java.util.ArrayList();
}
else {
return Collections.unmodifiableList(Arrays.asList(this.seriesKeys));
}
} Deprecated! Use - #getRowKeys() instead.
Returns a list of the series in the dataset. |
public int getSeriesCount() {
int result = 0;
if (this.startData != null) {
result = this.startData.length;
}
return result;
}
Returns the number of series in the dataset (possibly zero). |
public int getSeriesIndex(Comparable seriesKey) {
int result = -1;
for (int i = 0; i < this.seriesKeys.length; i++) {
if (seriesKey.equals(this.seriesKeys[i])) {
result = i;
break;
}
}
return result;
}
|
public Comparable getSeriesKey(int series) {
if ((series >= getSeriesCount()) || (series < 0)) {
throw new IllegalArgumentException("No such series : " + series);
}
return this.seriesKeys[series];
}
Returns the name of the specified series. |
public Number getStartValue(Comparable series,
Comparable category) {
int seriesIndex = getSeriesIndex(series);
if (seriesIndex < 0) {
throw new UnknownKeyException("Unknown 'series' key.");
}
int itemIndex = getColumnIndex(category);
if (itemIndex < 0) {
throw new UnknownKeyException("Unknown 'category' key.");
}
return getStartValue(seriesIndex, itemIndex);
}
Returns the start data value for one category in a series. |
public Number getStartValue(int series,
int category) {
// check arguments...
if ((series < 0) || (series >= getSeriesCount())) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.getValue(): "
+ "series index out of range.");
}
if ((category < 0) || (category >= getCategoryCount())) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.getValue(): "
+ "category index out of range.");
}
// fetch the value...
return this.startData[series][category];
}
Returns the start data value for one category in a series. |
public Number getValue(Comparable series,
Comparable category) {
int seriesIndex = getSeriesIndex(series);
if (seriesIndex < 0) {
throw new UnknownKeyException("Unknown 'series' key.");
}
int itemIndex = getColumnIndex(category);
if (itemIndex < 0) {
throw new UnknownKeyException("Unknown 'category' key.");
}
return getValue(seriesIndex, itemIndex);
}
Returns the data value for one category in a series.
This method is part of the CategoryDataset interface. Not particularly
meaningful for this class...returns the end value. |
public Number getValue(int series,
int category) {
return getEndValue(series, category);
}
Returns the data value for one category in a series.
This method is part of the CategoryDataset interface. Not particularly
meaningful for this class...returns the end value. |
public void setCategoryKeys(Comparable[] categoryKeys) {
if (categoryKeys == null) {
throw new IllegalArgumentException("Null 'categoryKeys' argument.");
}
if (categoryKeys.length != getCategoryCount()) {
throw new IllegalArgumentException(
"The number of categories does not match the data.");
}
for (int i = 0; i < categoryKeys.length; i++) {
if (categoryKeys[i] == null) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.setCategoryKeys(): "
+ "null category not permitted.");
}
}
this.categoryKeys = categoryKeys;
fireDatasetChanged();
}
Sets the categories for the dataset. |
public void setEndValue(int series,
Comparable category,
Number value) {
// does the series exist?
if ((series < 0) || (series > getSeriesCount() - 1)) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.setValue: "
+ "series outside valid range.");
}
// is the category valid?
int categoryIndex = getCategoryIndex(category);
if (categoryIndex < 0) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.setValue: "
+ "unrecognised category.");
}
// update the data...
this.endData[series][categoryIndex] = value;
fireDatasetChanged();
}
Sets the end data value for one category in a series. |
public void setSeriesKeys(Comparable[] seriesKeys) {
if (seriesKeys == null) {
throw new IllegalArgumentException("Null 'seriesKeys' argument.");
}
if (seriesKeys.length != getSeriesCount()) {
throw new IllegalArgumentException(
"The number of series keys does not match the data.");
}
this.seriesKeys = seriesKeys;
fireDatasetChanged();
}
Sets the names of the series in the dataset. |
public void setStartValue(int series,
Comparable category,
Number value) {
// does the series exist?
if ((series < 0) || (series > getSeriesCount() - 1)) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.setValue: "
+ "series outside valid range.");
}
// is the category valid?
int categoryIndex = getCategoryIndex(category);
if (categoryIndex < 0) {
throw new IllegalArgumentException(
"DefaultIntervalCategoryDataset.setValue: "
+ "unrecognised category.");
}
// update the data...
this.startData[series][categoryIndex] = value;
fireDatasetChanged();
}
Sets the start data value for one category in a series. |