From 6ca8826f856d37f9f53e95203168c3649bcb4d08 Mon Sep 17 00:00:00 2001 From: bjl23 Date: Fri, 26 Mar 2010 20:27:20 +0000 Subject: [PATCH] resolves NIHVIVO-98 'Properties ''applicable'' to a class are not applied to directly equivalent classes' --- .../vitro/webapp/dao/jena/DataPropertyDaoJena.java | 10 ++++++++-- .../webapp/dao/jena/PropertyInstanceDaoJena.java | 11 ++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java index 9fe136015..2c75b8221 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyDaoJena.java @@ -43,6 +43,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao; import edu.cornell.mannlib.vitro.webapp.dao.InsertException; import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; +import edu.cornell.mannlib.vitro.webapp.dao.VClassDao; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.PelletListener; @@ -308,9 +309,14 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements List datapropsForClass = new ArrayList(); OntModel ontModel = getOntModelSelector().getTBoxModel(); try { - HashSet superclassURIs = new HashSet(getWebappDaoFactory().getVClassDao().getAllSuperClassURIs(vclassURI)); - Iterator superclassURIsIt = superclassURIs.iterator(); + VClassDao vcDao = getWebappDaoFactory().getVClassDao(); + HashSet superclassURIs = new HashSet(vcDao.getAllSuperClassURIs(vclassURI)); superclassURIs.add(vclassURI); + for (String equivURI : vcDao.getEquivalentClassURIs(vclassURI)) { + superclassURIs.add(equivURI); + superclassURIs.addAll(vcDao.getAllSuperClassURIs(equivURI)); + } + Iterator superclassURIsIt = superclassURIs.iterator(); ontModel.enterCriticalSection(Lock.READ); try { Iterator dataprops = ontModel.listDatatypeProperties(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyInstanceDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyInstanceDaoJena.java index 8329baa45..b704cb363 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyInstanceDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyInstanceDaoJena.java @@ -134,11 +134,16 @@ public class PropertyInstanceDaoJena extends JenaBaseDao implements } List propInsts = new ArrayList(); - List allSuperclassURIs = getWebappDaoFactory().getVClassDao().getAllSuperClassURIs(classURI); + VClassDao vcDao = getWebappDaoFactory().getVClassDao(); - if (allSuperclassURIs == null) - allSuperclassURIs = new ArrayList(); + Set allSuperclassURIs = new HashSet(); + allSuperclassURIs.add(classURI); + for (String equivURI : vcDao.getEquivalentClassURIs(classURI)) { + allSuperclassURIs.add(equivURI); + allSuperclassURIs.addAll(vcDao.getAllSuperClassURIs(equivURI)); + } + allSuperclassURIs.addAll(vcDao.getAllSuperClassURIs(classURI)); try {