From 87a97cd8df1a3658aedc06fe7b465907202c9ceb Mon Sep 17 00:00:00 2001 From: bdc34 Date: Mon, 22 Mar 2010 22:04:47 +0000 Subject: [PATCH] Adding a new boolean property to ObjectProperty. NIHVIVO-118 --- .../vitro/webapp/beans/ObjectProperty.java | 10 ++++ .../edit/PropertyRetryController.java | 6 ++- .../vitro/webapp/dao/VitroVocabulary.java | 6 +-- .../vitro/webapp/dao/jena/JenaBaseDaoCon.java | 1 + .../dao/jena/ObjectPropertyDaoJena.java | 7 ++- .../dao/jena/ObjectPropertyDaoJenaTest.java | 50 +++++++++++++++++++ .../edit/specific/property_retry.jsp | 13 +++++ 7 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJenaTest.java diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/ObjectProperty.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/ObjectProperty.java index 3cd094b15..bd3e9c169 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/ObjectProperty.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/ObjectProperty.java @@ -75,6 +75,8 @@ public class ObjectProperty extends Property implements Comparable thing from the old system causes sorting problems and ugliness; here is an inelegant way of dealing with it for now (Note s will disappear on update) if (p.getDomainSidePhasedOut() != null) { p.setDomainSidePhasedOut(stripItalics(p.getDomainSidePhasedOut())); @@ -364,8 +367,7 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp com.hp.hpl.jena.ontology.ObjectProperty p = ontModel.createObjectProperty(prop.getURI()); com.hp.hpl.jena.ontology.ObjectProperty inv = null; if (hasInverse(prop)) { - System.out.println(prop.getURIInverse()); - System.out.println("non-null inverse URI"); + log.debug("non-null inverse URI: " +prop.getURIInverse()); errMsgStr = getWebappDaoFactory().checkURI(prop.getURIInverse()); if (errMsgStr != null) { throw new InsertException("Unusable URI for inverse property: "+errMsgStr); @@ -603,6 +605,7 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp updatePropertyBooleanValue(p,PROPERTY_SELECTFROMEXISTINGANNOT,prop.getSelectFromExisting(),ontModel,JenaBaseDao.KEEP_ONLY_IF_FALSE); updatePropertyBooleanValue(p,PROPERTY_OFFERCREATENEWOPTIONANNOT,prop.getOfferCreateNewOption(),ontModel,JenaBaseDao.KEEP_ONLY_IF_TRUE); updatePropertyBooleanValue(p,PROPERTY_FORCESTUBDELETIONANNOT,prop.getForceStubObjectDeletion(),ontModel,JenaBaseDao.KEEP_ONLY_IF_TRUE); + updatePropertyBooleanValue(p,PROPERTY_COLLATEBYSUBCLASSANNOT,prop.getCollateBySubclass(),ontModel,JenaBaseDao.KEEP_ONLY_IF_TRUE); try { p.removeAll(PROPERTY_INPROPERTYGROUPANNOT); if (prop.getGroupURI() != null && prop.getGroupURI().length()>0) { diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJenaTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJenaTest.java new file mode 100644 index 000000000..584a0409a --- /dev/null +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJenaTest.java @@ -0,0 +1,50 @@ +package edu.cornell.mannlib.vitro.webapp.dao.jena; + +import org.junit.Assert; +import org.junit.Test; + +import com.hp.hpl.jena.ontology.OntModel; +import com.hp.hpl.jena.rdf.model.ModelFactory; + +import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; +import edu.cornell.mannlib.vitro.webapp.dao.InsertException; +import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; + + +public class ObjectPropertyDaoJenaTest { + + @Test + public void testCollateBySubclass(){ + /* Check that we can save collateBySubclass */ + OntModel model = ModelFactory.createOntologyModel(); + WebappDaoFactory wdf = new WebappDaoFactoryJena(model); + + ObjectProperty op1 = new ObjectProperty(); + String propURI = "http://example.com/testObjectProp" ; + op1.setURI(propURI); + Assert.assertFalse(op1.getCollateBySubclass()); + try { + wdf.getObjectPropertyDao().insertObjectProperty(op1); + ObjectProperty op2 = wdf.getObjectPropertyDao().getObjectPropertyByURI(propURI); + Assert.assertNotNull(op2); + Assert.assertFalse(op2.getCollateBySubclass()); + + op2.setCollateBySubclass(true); + wdf.getObjectPropertyDao().updateObjectProperty(op2); + + ObjectProperty op3 = wdf.getObjectPropertyDao().getObjectPropertyByURI(propURI); + Assert.assertNotNull(op3); + Assert.assertTrue(op3.getCollateBySubclass()); + + op3.setCollateBySubclass(false); + wdf.getObjectPropertyDao().updateObjectProperty(op3); + + ObjectProperty op4 = wdf.getObjectPropertyDao().getObjectPropertyByURI(propURI); + Assert.assertNotNull(op4); + Assert.assertFalse(op4.getCollateBySubclass()); + + } catch (InsertException e) { + Assert.fail(e.getMessage()); + } + } +} diff --git a/webapp/web/templates/edit/specific/property_retry.jsp b/webapp/web/templates/edit/specific/property_retry.jsp index 6df6fbfd1..5a149aba9 100644 --- a/webapp/web/templates/edit/specific/property_retry.jsp +++ b/webapp/web/templates/edit/specific/property_retry.jsp @@ -151,6 +151,19 @@ + + + + + collate by subclass + + + collate by subclass + + + + +