From: David G. <mu...@us...> - 2006-11-28 14:06:22
|
Update of /cvsroot/jfreechart/jfreechart/source/org/jfree/data/xy In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv11343/source/org/jfree/data/xy Modified Files: Tag: STABLE_1-0-0 DefaultIntervalXYDataset.java DefaultXYDataset.java DefaultXYZDataset.java Log Message: 2006-11-28 David Gilbert <dav...@ob...> * source/org/jfree/data/xy/DefaultIntervalXYDataset.java (hashCode): New method override, (clone): Likewise, * source/org/jfree/data/xy/DefaultXYDataset.java (hashCode): Likewise, * source/org/jfree/data/xy/DefaultXYZDataset.java (hashCode): Likewise, * tests/org/jfree/data/xy/junit/DefaultIntervalXYDatasetTests.java (testCloning2): New method, * tests/org/jfree/data/xy/junit/DefaultOHLCDatasetTests.java (testEquals): Added more checks. Index: DefaultXYZDataset.java =================================================================== RCS file: /cvsroot/jfreechart/jfreechart/source/org/jfree/data/xy/Attic/DefaultXYZDataset.java,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** DefaultXYZDataset.java 2 Nov 2006 20:55:21 -0000 1.1.2.3 --- DefaultXYZDataset.java 28 Nov 2006 14:06:14 -0000 1.1.2.4 *************** *** 387,390 **** --- 387,402 ---- /** + * Returns a hash code for this instance. + * + * @return A hash code. + */ + public int hashCode() { + int result; + result = this.seriesKeys.hashCode(); + result = 29 * result + this.seriesList.hashCode(); + return result; + } + + /** * Creates an independent copy of this dataset. * Index: DefaultXYDataset.java =================================================================== RCS file: /cvsroot/jfreechart/jfreechart/source/org/jfree/data/xy/Attic/DefaultXYDataset.java,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** DefaultXYDataset.java 2 Nov 2006 20:55:21 -0000 1.1.2.3 --- DefaultXYDataset.java 28 Nov 2006 14:06:14 -0000 1.1.2.4 *************** *** 335,338 **** --- 335,350 ---- /** + * Returns a hash code for this instance. + * + * @return A hash code. + */ + public int hashCode() { + int result; + result = this.seriesKeys.hashCode(); + result = 29 * result + this.seriesList.hashCode(); + return result; + } + + /** * Creates an independent copy of this dataset. * Index: DefaultIntervalXYDataset.java =================================================================== RCS file: /cvsroot/jfreechart/jfreechart/source/org/jfree/data/xy/Attic/DefaultIntervalXYDataset.java,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** DefaultIntervalXYDataset.java 2 Nov 2006 20:55:21 -0000 1.1.2.2 --- DefaultIntervalXYDataset.java 28 Nov 2006 14:06:14 -0000 1.1.2.3 *************** *** 40,43 **** --- 40,44 ---- * 02-Nov-2006 : Fixed a problem with adding a new series with the same key * as an existing series (see bug 1589392) (DG); + * 28-Nov-2006 : New override for clone() (DG); * */ *************** *** 45,48 **** --- 46,50 ---- package org.jfree.data.xy; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; *************** *** 492,495 **** --- 494,548 ---- return true; } + + /** + * Returns a hash code for this instance. + * + * @return A hash code. + */ + public int hashCode() { + int result; + result = this.seriesKeys.hashCode(); + result = 29 * result + this.seriesList.hashCode(); + return result; + } + + /** + * Returns a clone of this dataset. + * + * @return A clone. + * + * @throws CloneNotSupportedException if the dataset contains a series with + * a key that cannot be cloned. + */ + public Object clone() throws CloneNotSupportedException { + DefaultIntervalXYDataset clone + = (DefaultIntervalXYDataset) super.clone(); + clone.seriesKeys = new java.util.ArrayList(this.seriesKeys); + clone.seriesList = new ArrayList(this.seriesList.size()); + for (int i = 0; i < this.seriesList.size(); i++) { + double[][] data = (double[][]) this.seriesList.get(i); + double[] x = data[0]; + double[] xStart = data[1]; + double[] xEnd = data[2]; + double[] y = data[3]; + double[] yStart = data[4]; + double[] yEnd = data[5]; + double[] xx = new double[x.length]; + double[] xxStart = new double[xStart.length]; + double[] xxEnd = new double[xEnd.length]; + double[] yy = new double[y.length]; + double[] yyStart = new double[yStart.length]; + double[] yyEnd = new double[yEnd.length]; + System.arraycopy(x, 0, xx, 0, x.length); + System.arraycopy(xStart, 0, xxStart, 0, xStart.length); + System.arraycopy(xEnd, 0, xxEnd, 0, xEnd.length); + System.arraycopy(y, 0, yy, 0, y.length); + System.arraycopy(yStart, 0, yyStart, 0, yStart.length); + System.arraycopy(yEnd, 0, yyEnd, 0, yEnd.length); + clone.seriesList.add(i, new double[][] {xx, xxStart, xxEnd, yy, + yyStart, yyEnd}); + } + return clone; + } } |