# HG changeset patch # User stevenh # Date 1357075098 0 # Node ID 842ce6ca6e29242b1c29ff23cf37aebcd0c4325c # Parent ffd47645ca130a28bdd824a7e87ec3bee9bd252e modified the 'compareTo' method so that it is now an extension of the base version given in the superclass diff -r ffd47645ca13 -r 842ce6ca6e29 src/org/qmul/eecs/c4dm/sia/model/VectorTableElement.java --- a/src/org/qmul/eecs/c4dm/sia/model/VectorTableElement.java Tue Jan 01 21:16:49 2013 +0000 +++ b/src/org/qmul/eecs/c4dm/sia/model/VectorTableElement.java Tue Jan 01 21:18:18 2013 +0000 @@ -1,10 +1,6 @@ package org.qmul.eecs.c4dm.sia.model; -import java.util.Iterator; -import java.util.Vector; - import org.qmul.eecs.c4dm.sia.SiaMain; -import org.qmul.eecs.c4dm.sia.exceptions.DimensionException; import com.hp.hpl.jena.rdf.model.Resource; @@ -12,7 +8,7 @@ * @author stevenhargreaves * */ -public class VectorTableElement extends NDimensionalObject implements Comparable { +public class VectorTableElement extends NDimensionalObject { private Datapoint fromDatapoint; private Datapoint toDatapoint; @@ -67,59 +63,32 @@ */ @Override public int compareTo(Object o2) { - VectorTableElement vte2 = (VectorTableElement)o2; - Vector vte2DimVals = vte2.getDimensionValues(); + int compareResult = super.compareTo(o2); - int vte2DimSize = vte2DimVals.size(); + if (compareResult == 0) + { + VectorTableElement vte2 = (VectorTableElement)o2; - if (vte2DimSize != this.getDimensionValues().size()) - throw new ClassCastException("VectorTableElements have an unequal number of dimensions"); - - Iterator vte1DimValsIter = this.getDimensionValues().iterator(); - Iterator vte2DimValsIter = vte2DimVals.iterator(); - - DimensionValue vte1DimVal; - DimensionValue vte2DimVal; - - for (int dimension = 1; dimension <= vte2DimSize; dimension++) - { - double dimension1 = 0; - try { - dimension1 = this.getDimensionValue(dimension); - } catch (DimensionException e) { - System.out.println(e.getMessage()); - e.printStackTrace(); - System.exit(-1); - } - double dimension2 = 0; - try { - dimension2 = vte2.getDimensionValue(dimension); - } catch (DimensionException e) { - System.out.println(e.getMessage()); - e.printStackTrace(); - System.exit(-1); - } - - if (dimension1 < dimension2) + if (this.getFromDatapoint().getOrderedIndex() < vte2.getFromDatapoint().getOrderedIndex()) { return -1; } - else if (dimension1 > dimension2) + else if (this.getFromDatapoint().getOrderedIndex() > vte2.getFromDatapoint().getOrderedIndex()) { return 1; } + else + { + return 0; + } } - - if (this.getFromDatapoint().getOrderedIndex() < vte2.getFromDatapoint().getOrderedIndex()) - { - return -1; - } - else if (this.getFromDatapoint().getOrderedIndex() > vte2.getFromDatapoint().getOrderedIndex()) - { - return 1; - } - return 0; + return compareResult; } + public int compareToIgnoreDatapoints(Object o2) { + + int compareResult = super.compareTo(o2); + return compareResult; + } }