annotate src/org/qmul/eecs/c4dm/sia/model/VectorTableElement.java @ 28:8901059f8144

organized imports use the new "Namespaces" class when creating String RESOURCE_URI added throws DimensionException where necessary added private NDimensionalObject vector, together with getter and setter
author stevenh
date Tue, 08 Jan 2013 18:46:47 +0000
parents 842ce6ca6e29
children 4b74b959b576
rev   line source
steve@0 1 package org.qmul.eecs.c4dm.sia.model;
steve@0 2
stevenh@28 3 import java.util.Vector;
stevenh@28 4
stevenh@28 5 import org.qmul.eecs.c4dm.sia.exceptions.DimensionException;
stevenh@28 6 import org.qmul.eecs.c4dm.sia.rdf.Namespaces;
steve@0 7
steve@0 8 import com.hp.hpl.jena.rdf.model.Resource;
steve@0 9
steve@0 10 /**
steve@0 11 * @author stevenhargreaves
steve@0 12 *
steve@0 13 */
stevenh@8 14 public class VectorTableElement extends NDimensionalObject {
steve@0 15
steve@0 16 private Datapoint fromDatapoint;
steve@0 17 private Datapoint toDatapoint;
stevenh@28 18 private NDimensionalObject vector;
steve@0 19 private Resource resource;
steve@0 20
stevenh@28 21 public static final String RESOURCE_URI = Namespaces.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
stevenh@28 46 * @throws DimensionException
steve@0 47 */
stevenh@28 48 public void setFromDatapoint(Datapoint fromDatapoint) throws DimensionException {
steve@0 49 this.fromDatapoint = fromDatapoint;
stevenh@28 50 setVector();
steve@0 51 }
steve@0 52
steve@0 53 /**
steve@0 54 * @return
steve@0 55 */
steve@0 56 public Datapoint getToDatapoint() {
steve@0 57 return toDatapoint;
steve@0 58 }
steve@0 59
steve@0 60 /**
steve@0 61 * @param toDatapoint
stevenh@28 62 * @throws DimensionException
steve@0 63 */
stevenh@28 64 public void setToDatapoint(Datapoint toDatapoint) throws DimensionException {
steve@0 65 this.toDatapoint = toDatapoint;
stevenh@28 66 setVector();
stevenh@28 67 }
stevenh@28 68
stevenh@28 69 /**
stevenh@28 70 * @throws DimensionException
stevenh@28 71 */
stevenh@28 72 private void setVector() throws DimensionException {
stevenh@28 73 NDimensionalObject vector = new NDimensionalObject();
stevenh@28 74 Vector<DimensionValue> dimVals = new Vector<DimensionValue>();
stevenh@28 75
stevenh@28 76 if (this.getFromDatapoint() != null && this.getToDatapoint() != null)
stevenh@28 77 {
stevenh@28 78 int fromDimValsSize = this.getFromDatapoint().getDimensionValues().size();
stevenh@28 79 int toDimValsSize = this.getToDatapoint().getDimensionValues().size();
stevenh@28 80
stevenh@28 81 if (fromDimValsSize != toDimValsSize)
stevenh@28 82 throw new DimensionException("'from' and 'to' Datapoints have an unequal number of dimensions");
stevenh@28 83
stevenh@28 84 DimensionValue dimVal;
stevenh@28 85
stevenh@28 86 for (int dim = 1; dim <= fromDimValsSize; dim++)
stevenh@28 87 {
stevenh@28 88 dimVal = new DimensionValue();
stevenh@28 89 double fromDimVal = this.getFromDatapoint().getDimensionValue(dim);
stevenh@28 90 double toDimVal = this.getToDatapoint().getDimensionValue(dim);
stevenh@28 91 dimVal.setDimension(dim);
stevenh@28 92 dimVal.setValue(toDimVal - fromDimVal);
stevenh@28 93 dimVals.add(dimVal);
stevenh@28 94 }
stevenh@28 95 vector.setDimensionValues(dimVals);
stevenh@28 96 this.vector = vector;
stevenh@28 97 }
stevenh@28 98 }
stevenh@28 99
stevenh@28 100 public NDimensionalObject getVector() {
stevenh@28 101
stevenh@28 102 return this.vector;
steve@0 103 }
steve@0 104
steve@0 105 /* (non-Javadoc)
steve@0 106 * @see java.lang.Comparable#compareTo(java.lang.Object)
steve@0 107 */
steve@0 108 @Override
steve@0 109 public int compareTo(Object o2) {
steve@0 110
stevenh@8 111 int compareResult = super.compareTo(o2);
steve@0 112
stevenh@8 113 if (compareResult == 0)
stevenh@8 114 {
stevenh@8 115 VectorTableElement vte2 = (VectorTableElement)o2;
steve@0 116
stevenh@8 117 if (this.getFromDatapoint().getOrderedIndex() < vte2.getFromDatapoint().getOrderedIndex())
steve@0 118 {
steve@0 119 return -1;
steve@0 120 }
stevenh@8 121 else if (this.getFromDatapoint().getOrderedIndex() > vte2.getFromDatapoint().getOrderedIndex())
steve@0 122 {
steve@0 123 return 1;
steve@0 124 }
stevenh@8 125 else
stevenh@8 126 {
stevenh@8 127 return 0;
stevenh@8 128 }
steve@0 129 }
stevenh@8 130 return compareResult;
steve@0 131 }
steve@0 132
stevenh@8 133 public int compareToIgnoreDatapoints(Object o2) {
stevenh@8 134
stevenh@8 135 int compareResult = super.compareTo(o2);
stevenh@8 136 return compareResult;
stevenh@8 137 }
steve@0 138 }