From 593266b512ea2a0967292db5bc3ecc1e3e607185 Mon Sep 17 00:00:00 2001 From: ryounes Date: Fri, 15 Jul 2011 20:49:03 +0000 Subject: [PATCH] Use LinkedHashMap in getMostSpecificTypes method so order is preserved when we get the values in JsonServlet --- .../webapp/dao/jena/ObjectPropertyStatementDaoJena.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyStatementDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyStatementDaoJena.java index 7df5c7e7c..6dc580003 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyStatementDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyStatementDaoJena.java @@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.dao.jena; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -388,7 +389,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec protected static final String MOST_SPECIFIC_TYPE_QUERY = "" + "PREFIX rdfs: <" + VitroVocabulary.RDFS + "> \n" + "PREFIX vitro: <" + VitroVocabulary.vitroURI + "> \n" - + "SELECT ?label ?type WHERE { \n" + + "SELECT DISTINCT ?label ?type WHERE { \n" + " ?subject vitro:mostSpecificType ?type . \n" + " ?type rdfs:label ?label . \n" + " ?type vitro:inClassGroup ?classGroup . \n" @@ -397,7 +398,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec @Override /** - * Finds all mostSpecificTypes of an individual. + * Finds all mostSpecificTypes of an individual that are members of a classgroup. * Returns a list of type labels. * **/ public Map getMostSpecificTypesInClassgroupsForIndividual(String subjectUri) { @@ -415,7 +416,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec return Collections.emptyMap(); } - Map types = new HashMap(); + Map types = new LinkedHashMap(); DatasetWrapper w = dwf.getDatasetWrapper(); Dataset dataset = w.getDataset(); dataset.getLock().enterCriticalSection(Lock.READ);