Mercurial > hg > semantic-sia
view 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 |
line wrap: on
line source
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; public class Datapoint extends NDimensionalObject implements Comparable { private Resource resource; private int orderedIndex; public static final String RESOURCE_URI = SiaMain.SIA_NS_URI + "Datapoint"; /** * @return the resource */ public Resource getResource() { return resource; } /** * @param resource the node to set */ public void setResource(Resource resource) { this.resource = resource; } /** * @return the orderedIndex */ public int getOrderedIndex() { return orderedIndex; } /** * @param orderedIndex the orderedIndex to set */ public void setOrderedIndex(int orderedIndex) { this.orderedIndex = orderedIndex; } @Override public int compareTo(Object o2) { Datapoint datapoint2 = (Datapoint)o2; Vector<DimensionValue> datapoint2DimVals = datapoint2.getDimensionValues(); int datapoint2DimSize = datapoint2DimVals.size(); if (datapoint2DimSize != this.getDimensionValues().size()) throw new ClassCastException("Datapoints have an unequal number of dimensions"); Iterator<DimensionValue> datapoint1DimValsIter = this.getDimensionValues().iterator(); Iterator<DimensionValue> datapoint2DimValsIter = datapoint2DimVals.iterator(); DimensionValue datapoint1DimVal; DimensionValue datapoint2DimVal; for (int dimension = 1; dimension <= datapoint2DimSize; dimension++) { double dimension1 = 0; try { dimension1 = this.getDimensionValue(dimension); } catch (DimensionException e) { // TODO Auto-generated catch block System.out.println(e.getMessage()); e.printStackTrace(); } double dimension2 = 0; try { dimension2 = datapoint2.getDimensionValue(dimension); } catch (DimensionException e) { // TODO Auto-generated catch block System.out.println(e.getMessage()); e.printStackTrace(); } if (dimension1 < dimension2) { return -1; } else if (dimension1 > dimension2) { return 1; } } return 0; } }