From 8d538b5fc6be372ea82f3590f468e6cfa702d0b1 Mon Sep 17 00:00:00 2001 From: sjm222 Date: Fri, 14 May 2010 20:40:19 +0000 Subject: [PATCH] modifications for NIHVIVO-246. changed the getSuperPropertyURIs and getSuperClassURIs methods in the property and class DaoJenas (and the interfaces that they implement, and the filtering code) to take an additional boolean argument named direct and to pass it to the Jena call. changed the edit controllers to invoke the above methods with direct=false. changed the recursive methods within the daos to invoke the above methods with direct=true --- .../webapp/controller/edit/DatapropEditController.java | 2 +- .../webapp/controller/edit/PropertyEditController.java | 2 +- .../webapp/controller/edit/VclassEditController.java | 2 +- .../mannlib/vitro/webapp/dao/ObjectPropertyDao.java | 2 +- .../cornell/mannlib/vitro/webapp/dao/PropertyDao.java | 2 +- .../edu/cornell/mannlib/vitro/webapp/dao/VClassDao.java | 2 +- .../webapp/dao/filtering/DataPropertyDaoFiltering.java | 4 ++-- .../webapp/dao/filtering/ObjectPropertyDaoFiltering.java | 4 ++-- .../vitro/webapp/dao/filtering/VClassDaoFiltering.java | 4 ++-- .../mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java | 6 +++--- .../mannlib/vitro/webapp/dao/jena/VClassDaoJena.java | 9 +++++---- 11 files changed, 20 insertions(+), 19 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java index 3749035ad..bcb3ee556 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java @@ -138,7 +138,7 @@ public class DatapropEditController extends BaseEditController { ? getAssertionsWebappDaoFactory().getDataPropertyDao() : getWebappDaoFactory().getDataPropertyDao(); - List superURIs = assertionsDpDao.getSuperPropertyURIs(dp.getURI()); + List superURIs = assertionsDpDao.getSuperPropertyURIs(dp.getURI(),false); List superProperties = new ArrayList(); Iterator superURIit = superURIs.iterator(); while (superURIit.hasNext()) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java index 8353fa8fe..6eac0edf3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java @@ -171,7 +171,7 @@ public class PropertyEditController extends BaseEditController { } else { opDao = getWebappDaoFactory().getObjectPropertyDao(); } - List superURIs = opDao.getSuperPropertyURIs(p.getURI()); + List superURIs = opDao.getSuperPropertyURIs(p.getURI(),false); List superProperties = new ArrayList(); Iterator superURIit = superURIs.iterator(); while (superURIit.hasNext()) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java index 1877a2853..4c783071a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java @@ -150,7 +150,7 @@ public class VclassEditController extends BaseEditController { } else { vcDao = getWebappDaoFactory().getVClassDao(); } - List superURIs = vcDao.getSuperClassURIs(vcl.getURI()); + List superURIs = vcDao.getSuperClassURIs(vcl.getURI(),false); List superVClasses = new ArrayList(); Iterator superURIit = superURIs.iterator(); while (superURIit.hasNext()) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ObjectPropertyDao.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ObjectPropertyDao.java index 0b4250294..0cb323977 100755 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ObjectPropertyDao.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ObjectPropertyDao.java @@ -17,7 +17,7 @@ public interface ObjectPropertyDao extends PropertyDao { public List getObjectPropertiesForObjectPropertyStatements(List /*of ObjectPropertyStatement */ objectPropertyStatements); - public List getSuperPropertyURIs(String objectPropertyURI); + public List getSuperPropertyURIs(String objectPropertyURI, boolean direct); public List getSubPropertyURIs(String objectPropertyURI); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/PropertyDao.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/PropertyDao.java index 7274a413b..4b05657e9 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/PropertyDao.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/PropertyDao.java @@ -37,7 +37,7 @@ public interface PropertyDao { List getAllSubPropertyURIs(String propertyURI); - List getSuperPropertyURIs(String propertyURI); + List getSuperPropertyURIs(String propertyURI, boolean direct); List getAllSuperPropertyURIs(String propertyURI); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VClassDao.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VClassDao.java index 493904700..7c9ce1e02 100755 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VClassDao.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/VClassDao.java @@ -48,7 +48,7 @@ public interface VClassDao { List getAllSubClassURIs(String classURI); - List getSuperClassURIs(String classURI); + List getSuperClassURIs(String classURI, boolean direct); List getAllSuperClassURIs(String classURI); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/DataPropertyDaoFiltering.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/DataPropertyDaoFiltering.java index 22f360a6d..19aad491e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/DataPropertyDaoFiltering.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/DataPropertyDaoFiltering.java @@ -133,8 +133,8 @@ class DataPropertyDaoFiltering extends BaseFiltering implements DataPropertyDao{ return innerDataPropertyDao.getAllSubPropertyURIs(propertyURI); } - public List getSuperPropertyURIs(String propertyURI) { - return innerDataPropertyDao.getSuperPropertyURIs(propertyURI); + public List getSuperPropertyURIs(String propertyURI, boolean direct) { + return innerDataPropertyDao.getSuperPropertyURIs(propertyURI, direct); } public List getAllSuperPropertyURIs(String propertyURI) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/ObjectPropertyDaoFiltering.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/ObjectPropertyDaoFiltering.java index d6b7fe134..9d1ba0b43 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/ObjectPropertyDaoFiltering.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/ObjectPropertyDaoFiltering.java @@ -120,8 +120,8 @@ class ObjectPropertyDaoFiltering extends BaseFiltering implements ObjectProperty return innerObjectPropertyDao.getAllSubPropertyURIs(propertyURI); } - public List getSuperPropertyURIs(String propertyURI) { - return innerObjectPropertyDao.getSuperPropertyURIs(propertyURI); + public List getSuperPropertyURIs(String propertyURI, boolean direct) { + return innerObjectPropertyDao.getSuperPropertyURIs(propertyURI, direct); } public List getAllSuperPropertyURIs(String propertyURI) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/VClassDaoFiltering.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/VClassDaoFiltering.java index 2357d9d04..46fa600d0 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/VClassDaoFiltering.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/VClassDaoFiltering.java @@ -132,8 +132,8 @@ public class VClassDaoFiltering extends BaseFiltering implements VClassDao{ return innerVClassDao.getSubClassURIs(classURI); } - public List getSuperClassURIs(String classURI) { - return innerVClassDao.getSuperClassURIs(classURI); + public List getSuperClassURIs(String classURI, boolean direct) { + return innerVClassDao.getSuperClassURIs(classURI, direct); } public VClass getVClassByURI(String URI) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java index 440957907..765659d4a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/PropertyDaoJena.java @@ -127,11 +127,11 @@ public class PropertyDaoJena extends JenaBaseDao implements PropertyDao { return outputList; } - public List getSuperPropertyURIs(String propertyURI) { + public List getSuperPropertyURIs(String propertyURI, boolean direct) { List supURIs = new LinkedList(); getOntModel().enterCriticalSection(Lock.READ); try { - Iterator supIt = getOntModel().getOntProperty(propertyURI).listSuperProperties(true); + Iterator supIt = getOntModel().getOntProperty(propertyURI).listSuperProperties(direct); while (supIt.hasNext()) { try { OntProperty prop = (OntProperty) supIt.next(); @@ -147,7 +147,7 @@ public class PropertyDaoJena extends JenaBaseDao implements PropertyDao { } private void getAllSuperPropertyURIs(String propertyURI, HashSet subtree){ - List directSuperproperties = getSuperPropertyURIs(propertyURI); + List directSuperproperties = getSuperPropertyURIs(propertyURI,true); Iterator it=directSuperproperties.iterator(); while(it.hasNext()){ String uri = (String)it.next(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VClassDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VClassDaoJena.java index e09f690fe..b196f4c64 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VClassDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VClassDaoJena.java @@ -417,7 +417,7 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao { } public void getAllSuperClassURIs(String classURI, HashSet subtree){ - List directSuperclasses = getSuperClassURIs(classURI); + List directSuperclasses = getSuperClassURIs(classURI, true); Iterator it=directSuperclasses.iterator(); while(it.hasNext()){ String uri = (String)it.next(); @@ -607,16 +607,17 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao { return subURIs; } - public List getSuperClassURIs(String classURI) { + public List getSuperClassURIs(String classURI, boolean direct) { List supURIs = new ArrayList(); OntClass subClass = getOntClass(getOntModel(), classURI); try { - Iterator supIt = subClass.listSuperClasses(true); + Iterator supIt = subClass.listSuperClasses(direct); while (supIt.hasNext()) { OntClass cls = (OntClass) supIt.next(); supURIs.add(getClassURIStr(cls)); } } catch (Exception e) { + //TODO make this attempt respect the direct argument // we'll try this again using a different method that doesn't try to convert to OntClass List supList = this.listDirectObjectPropertyValues(getOntModel().getResource(classURI), RDFS.subClassOf); for (Resource res : supList) { @@ -691,7 +692,7 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao { OntResource superclass = null; if (vclassURI != null) { // TODO need a getAllSuperPropertyURIs method in ObjectPropertyDao - List superproperties = getWebappDaoFactory().getObjectPropertyDao().getSuperPropertyURIs(propertyURI); + List superproperties = getWebappDaoFactory().getObjectPropertyDao().getSuperPropertyURIs(propertyURI,false); superproperties.add(propertyURI); HashSet subjSuperclasses = new HashSet(getAllSuperClassURIs(vclassURI)); subjSuperclasses.add(vclassURI);