annotate src/org/qmul/eecs/c4dm/sia/model/VectorTableElement.java @ 0:08675ab08e7f

New
author Steven Hargreaves <steve.harg@gmail.com>
date Sat, 29 Dec 2012 17:41:06 +0000
parents
children 842ce6ca6e29
rev   line source
steve@0 1 package org.qmul.eecs.c4dm.sia.model;
steve@0 2
steve@0 3 import java.util.Iterator;
steve@0 4 import java.util.Vector;
steve@0 5
steve@0 6 import org.qmul.eecs.c4dm.sia.SiaMain;
steve@0 7 import org.qmul.eecs.c4dm.sia.exceptions.DimensionException;
steve@0 8
steve@0 9 import com.hp.hpl.jena.rdf.model.Resource;
steve@0 10
steve@0 11 /**
steve@0 12 * @author stevenhargreaves
steve@0 13 *
steve@0 14 */
steve@0 15 public class VectorTableElement extends NDimensionalObject implements Comparable {
steve@0 16
steve@0 17 private Datapoint fromDatapoint;
steve@0 18 private Datapoint toDatapoint;
steve@0 19 private Resource resource;
steve@0 20
steve@0 21 public static final String RESOURCE_URI = SiaMain.SIA_NS_URI + "VectorTableElement";
steve@0 22
steve@0 23 /**
steve@0 24 * @return
steve@0 25 */
steve@0 26 public Resource getResource() {
steve@0 27 return resource;
steve@0 28 }
steve@0 29
steve@0 30 /**
steve@0 31 * @param resource
steve@0 32 */
steve@0 33 public void setResource(Resource resource) {
steve@0 34 this.resource = resource;
steve@0 35 }
steve@0 36
steve@0 37 /**
steve@0 38 * @return
steve@0 39 */
steve@0 40 public Datapoint getFromDatapoint() {
steve@0 41 return fromDatapoint;
steve@0 42 }
steve@0 43
steve@0 44 /**
steve@0 45 * @param fromDatapoint
steve@0 46 */
steve@0 47 public void setFromDatapoint(Datapoint fromDatapoint) {
steve@0 48 this.fromDatapoint = fromDatapoint;
steve@0 49 }
steve@0 50
steve@0 51 /**
steve@0 52 * @return
steve@0 53 */
steve@0 54 public Datapoint getToDatapoint() {
steve@0 55 return toDatapoint;
steve@0 56 }
steve@0 57
steve@0 58 /**
steve@0 59 * @param toDatapoint
steve@0 60 */
steve@0 61 public void setToDatapoint(Datapoint toDatapoint) {
steve@0 62 this.toDatapoint = toDatapoint;
steve@0 63 }
steve@0 64
steve@0 65 /* (non-Javadoc)
steve@0 66 * @see java.lang.Comparable#compareTo(java.lang.Object)
steve@0 67 */
steve@0 68 @Override
steve@0 69 public int compareTo(Object o2) {
steve@0 70 VectorTableElement vte2 = (VectorTableElement)o2;
steve@0 71
steve@0 72 Vector<DimensionValue> vte2DimVals = vte2.getDimensionValues();
steve@0 73
steve@0 74 int vte2DimSize = vte2DimVals.size();
steve@0 75
steve@0 76 if (vte2DimSize != this.getDimensionValues().size())
steve@0 77 throw new ClassCastException("VectorTableElements have an unequal number of dimensions");
steve@0 78
steve@0 79 Iterator<DimensionValue> vte1DimValsIter = this.getDimensionValues().iterator();
steve@0 80 Iterator<DimensionValue> vte2DimValsIter = vte2DimVals.iterator();
steve@0 81
steve@0 82 DimensionValue vte1DimVal;
steve@0 83 DimensionValue vte2DimVal;
steve@0 84
steve@0 85 for (int dimension = 1; dimension <= vte2DimSize; dimension++)
steve@0 86 {
steve@0 87 double dimension1 = 0;
steve@0 88 try {
steve@0 89 dimension1 = this.getDimensionValue(dimension);
steve@0 90 } catch (DimensionException e) {
steve@0 91 System.out.println(e.getMessage());
steve@0 92 e.printStackTrace();
steve@0 93 System.exit(-1);
steve@0 94 }
steve@0 95 double dimension2 = 0;
steve@0 96 try {
steve@0 97 dimension2 = vte2.getDimensionValue(dimension);
steve@0 98 } catch (DimensionException e) {
steve@0 99 System.out.println(e.getMessage());
steve@0 100 e.printStackTrace();
steve@0 101 System.exit(-1);
steve@0 102 }
steve@0 103
steve@0 104 if (dimension1 < dimension2)
steve@0 105 {
steve@0 106 return -1;
steve@0 107 }
steve@0 108 else if (dimension1 > dimension2)
steve@0 109 {
steve@0 110 return 1;
steve@0 111 }
steve@0 112 }
steve@0 113
steve@0 114 if (this.getFromDatapoint().getOrderedIndex() < vte2.getFromDatapoint().getOrderedIndex())
steve@0 115 {
steve@0 116 return -1;
steve@0 117 }
steve@0 118 else if (this.getFromDatapoint().getOrderedIndex() > vte2.getFromDatapoint().getOrderedIndex())
steve@0 119 {
steve@0 120 return 1;
steve@0 121 }
steve@0 122 return 0;
steve@0 123 }
steve@0 124
steve@0 125 }