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

New
author Steven Hargreaves <steve.harg@gmail.com>
date Sat, 29 Dec 2012 17:41:06 +0000
parents
children 7c2d7e0946b3
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 public class Datapoint extends NDimensionalObject implements Comparable {
steve@0 12
steve@0 13 private Resource resource;
steve@0 14 private int orderedIndex;
steve@0 15
steve@0 16 public static final String RESOURCE_URI = SiaMain.SIA_NS_URI + "Datapoint";
steve@0 17
steve@0 18 /**
steve@0 19 * @return the resource
steve@0 20 */
steve@0 21 public Resource getResource() {
steve@0 22 return resource;
steve@0 23 }
steve@0 24
steve@0 25 /**
steve@0 26 * @param resource the node to set
steve@0 27 */
steve@0 28 public void setResource(Resource resource) {
steve@0 29 this.resource = resource;
steve@0 30 }
steve@0 31
steve@0 32 /**
steve@0 33 * @return the orderedIndex
steve@0 34 */
steve@0 35 public int getOrderedIndex() {
steve@0 36 return orderedIndex;
steve@0 37 }
steve@0 38
steve@0 39 /**
steve@0 40 * @param orderedIndex the orderedIndex to set
steve@0 41 */
steve@0 42 public void setOrderedIndex(int orderedIndex) {
steve@0 43 this.orderedIndex = orderedIndex;
steve@0 44 }
steve@0 45
steve@0 46 @Override
steve@0 47 public int compareTo(Object o2) {
steve@0 48 Datapoint datapoint2 = (Datapoint)o2;
steve@0 49
steve@0 50 Vector<DimensionValue> datapoint2DimVals = datapoint2.getDimensionValues();
steve@0 51
steve@0 52 int datapoint2DimSize = datapoint2DimVals.size();
steve@0 53
steve@0 54 if (datapoint2DimSize != this.getDimensionValues().size())
steve@0 55 throw new ClassCastException("Datapoints have an unequal number of dimensions");
steve@0 56
steve@0 57 Iterator<DimensionValue> datapoint1DimValsIter = this.getDimensionValues().iterator();
steve@0 58 Iterator<DimensionValue> datapoint2DimValsIter = datapoint2DimVals.iterator();
steve@0 59
steve@0 60 DimensionValue datapoint1DimVal;
steve@0 61 DimensionValue datapoint2DimVal;
steve@0 62
steve@0 63 for (int dimension = 1; dimension <= datapoint2DimSize; dimension++)
steve@0 64 {
steve@0 65 double dimension1 = 0;
steve@0 66 try {
steve@0 67 dimension1 = this.getDimensionValue(dimension);
steve@0 68 } catch (DimensionException e) {
steve@0 69 // TODO Auto-generated catch block
steve@0 70 System.out.println(e.getMessage());
steve@0 71 e.printStackTrace();
steve@0 72 }
steve@0 73 double dimension2 = 0;
steve@0 74 try {
steve@0 75 dimension2 = datapoint2.getDimensionValue(dimension);
steve@0 76 } catch (DimensionException e) {
steve@0 77 // TODO Auto-generated catch block
steve@0 78 System.out.println(e.getMessage());
steve@0 79 e.printStackTrace();
steve@0 80 }
steve@0 81
steve@0 82 if (dimension1 < dimension2)
steve@0 83 {
steve@0 84 return -1;
steve@0 85 }
steve@0 86 else if (dimension1 > dimension2)
steve@0 87 {
steve@0 88 return 1;
steve@0 89 }
steve@0 90 }
steve@0 91
steve@0 92 return 0;
steve@0 93 }
steve@0 94
steve@0 95 }