changeset 39:88362f5eefa3

iterates through dimValDimensionStmtIter and dimValValueStmtIter rather than just taking first value (and so as a result, takes the last value instead)
author stevenh
date Thu, 28 Mar 2013 19:41:54 +0000
parents 1f09e7ded739
children 88a8c6a05b5f
files src/org/qmul/eecs/c4dm/sia/SiaDimensionValueFactory.java
diffstat 1 files changed, 15 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/org/qmul/eecs/c4dm/sia/SiaDimensionValueFactory.java	Thu Mar 28 19:37:08 2013 +0000
+++ b/src/org/qmul/eecs/c4dm/sia/SiaDimensionValueFactory.java	Thu Mar 28 19:41:54 2013 +0000
@@ -5,6 +5,7 @@
 import org.qmul.eecs.c4dm.sia.model.DimensionValue;
 
 import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.ontology.OntResource;
 import com.hp.hpl.jena.rdf.model.Literal;
 import com.hp.hpl.jena.rdf.model.Property;
 import com.hp.hpl.jena.rdf.model.RDFNode;
@@ -36,14 +37,21 @@
 			dimValValueStmtIter = ontModel.listStatements(dimValResource, valueProperty, (RDFNode)null);
 			dimVal = new DimensionValue();
 
-			Statement dimValDimensionStmt = dimValDimensionStmtIter.next();
-			Statement dimValValueStmt = dimValValueStmtIter.next();
-			Literal dimension = dimValDimensionStmt.getObject().asLiteral();
-			dimVal.setDimension(dimension.getInt());
+			// There should only be one statment here - if not, application behaviour is undefined
+			while (dimValDimensionStmtIter.hasNext())
+			{
+				Statement dimValDimensionStmt = dimValDimensionStmtIter.next();
+				Literal dimension = dimValDimensionStmt.getLiteral();
+				dimVal.setDimension(dimension.getInt());
+			}
 
-			Literal value = dimValValueStmt.getObject().asLiteral();
-
-			dimVal.setValue(value.getDouble());
+			// There should only be one statment here - if not, application behaviour is undefined
+			while (dimValValueStmtIter.hasNext())
+			{
+				Statement dimValValueStmt = dimValValueStmtIter.next();	
+				Literal value = dimValValueStmt.getLiteral();
+				dimVal.setValue(value.getDouble());
+			}
 			
 			dimValsList.add(dimVal);			
 		}