/** * Tests this dataset for equality with an arbitrary object. * * @param obj the object (<code>null</code> permitted). * @return A boolean. */ @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof TestIntervalCategoryDataset)) { return false; } TestIntervalCategoryDataset that = (TestIntervalCategoryDataset) obj; if (!getRowKeys().equals(that.getRowKeys())) { return false; } if (!getColumnKeys().equals(that.getColumnKeys())) { return false; } int rowCount = getRowCount(); int colCount = getColumnCount(); for (int r = 0; r < rowCount; r++) { for (int c = 0; c < colCount; c++) { Number v1 = getValue(r, c); Number v2 = that.getValue(r, c); if (v1 == null) { if (v2 != null) { return false; } } else if (!v1.equals(v2)) { return false; } } } return true; }
/** * Returns a clone of the dataset. * * @return A clone. * @throws CloneNotSupportedException if there is a problem cloning the dataset. */ @Override public Object clone() throws CloneNotSupportedException { TestIntervalCategoryDataset clone = (TestIntervalCategoryDataset) super.clone(); clone.data = (KeyedObjects2D) this.data.clone(); return clone; }