From e50a1bc6f56ca83e28c1c9e39c3f24dbb6c3bf2b Mon Sep 17 00:00:00 2001 From: bdc34 Date: Tue, 30 Mar 2010 20:00:17 +0000 Subject: [PATCH] Add dependent resources annotation to back end editing for object properties. NIHVIVO-212 --- .../vitro/webapp/beans/ObjectProperty.java | 10 +++--- .../edit/PropertyEditController.java | 2 +- .../edit/PropertyRetryController.java | 4 +-- .../vitro/webapp/dao/VitroVocabulary.java | 3 +- .../filtering/ObjectPropertyFiltering.java | 8 ++--- .../dao/jena/DependentResourceDeleteJena.java | 2 +- .../vitro/webapp/dao/jena/JenaBaseDaoCon.java | 8 +++-- .../dao/jena/ObjectPropertyDaoJena.java | 6 ++-- .../jena/DependentResourceDeleteJenaTest.java | 4 +-- .../webapp/dao/jena/JenaBaseDaoTest.java | 13 ++++--- .../dao/jena/ObjectPropertyDaoJenaTest.java | 35 +++++++++++++++++++ webapp/web/edit/forms/propDelete.jsp | 2 +- .../edit/specific/property_retry.jsp | 8 ++--- 13 files changed, 73 insertions(+), 32 deletions(-) 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 bd3e9c169..2f2f06b03 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/ObjectProperty.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/ObjectProperty.java @@ -73,7 +73,7 @@ public class ObjectProperty extends Property implements Comparable \"true\"^^xsd:boolean .\n" ; + " <"+VitroVocabulary.PROPERTY_STUBOBJECTPROPERTYANNOT+"> \"true\"^^xsd:boolean .\n" ; String nosePropIsDependentRel = - "<"+VitroVocabulary.PROPERTY_DEPENDENCYPROPERTYANNOT+"> rdf:type owl:AnnotationProperty .\n" + + "<"+VitroVocabulary.PROPERTY_STUBOBJECTPROPERTYANNOT+"> rdf:type owl:AnnotationProperty .\n" + " ex:hasNose " + isDependentRelation; String prefixesN3 = diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoTest.java index 5cb968cca..a9857a8ac 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoTest.java +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDaoTest.java @@ -33,10 +33,10 @@ import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; public class JenaBaseDaoTest { String isDependentRelation = - " <"+VitroVocabulary.PROPERTY_DEPENDENCYPROPERTYANNOT+"> \"true\"^^xsd:boolean .\n" ; + " <"+VitroVocabulary.PROPERTY_STUBOBJECTPROPERTYANNOT+"> \"true\"^^xsd:boolean .\n" ; String nosePropIsDependentRel = - "<"+VitroVocabulary.PROPERTY_DEPENDENCYPROPERTYANNOT+"> rdf:type owl:AnnotationProperty .\n" + + "<"+VitroVocabulary.PROPERTY_STUBOBJECTPROPERTYANNOT+"> rdf:type owl:AnnotationProperty .\n" + " ex:hasNose " + isDependentRelation; String prefixesN3 = @@ -104,7 +104,7 @@ public class JenaBaseDaoTest { " " + " a owl:ObjectProperty ; " + " rdfs:label \"Prop 1 Dependent Relation\" ; " + - " \"true\"^^xsd:boolean ." ; + isDependentRelation ; Model expectedModel = (ModelFactory.createOntologyModel()).read(new StringReader(expected), "", "N3"); @@ -185,7 +185,7 @@ public class JenaBaseDaoTest { " " + " a owl:ObjectProperty ; " + " rdfs:label \"Prop 1 Dependent Relation\" ; " + - " \"true\"^^xsd:boolean ." ; + isDependentRelation ; Model expectedModel = (ModelFactory.createOntologyModel()).read(new StringReader(expected), "", "N3"); @@ -193,6 +193,11 @@ public class JenaBaseDaoTest { wipeOutModTime(expectedModel); wipeOutModTime(model); + System.out.println("expected Model" ); + expectedModel.write(System.out,"N3"); + System.out.println("result model"); + model.write(System.out,"N3"); + Assert.assertTrue( model.isIsomorphicWith(expectedModel)); } 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 index 88cda3a29..a2ee68555 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJenaTest.java +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJenaTest.java @@ -49,4 +49,39 @@ public class ObjectPropertyDaoJenaTest { Assert.fail(e.getMessage()); } } + + @Test + public void testStubObjectProperty(){ + /* 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.getStubObjectRelation()); + try { + wdf.getObjectPropertyDao().insertObjectProperty(op1); + ObjectProperty op2 = wdf.getObjectPropertyDao().getObjectPropertyByURI(propURI); + Assert.assertNotNull(op2); + Assert.assertFalse(op2.getStubObjectRelation()); + + op2.setStubObjectRelation(true); + wdf.getObjectPropertyDao().updateObjectProperty(op2); + + ObjectProperty op3 = wdf.getObjectPropertyDao().getObjectPropertyByURI(propURI); + Assert.assertNotNull(op3); + Assert.assertTrue(op3.getStubObjectRelation()); + + op3.setStubObjectRelation(false); + wdf.getObjectPropertyDao().updateObjectProperty(op3); + + ObjectProperty op4 = wdf.getObjectPropertyDao().getObjectPropertyByURI(propURI); + Assert.assertNotNull(op4); + Assert.assertFalse(op4.getStubObjectRelation()); + + } catch (InsertException e) { + Assert.fail(e.getMessage()); + } + } } diff --git a/webapp/web/edit/forms/propDelete.jsp b/webapp/web/edit/forms/propDelete.jsp index 6bd18f5c9..089efa7a6 100644 --- a/webapp/web/edit/forms/propDelete.jsp +++ b/webapp/web/edit/forms/propDelete.jsp @@ -76,7 +76,7 @@ public WebappDaoFactory getUnfilteredDaoFactory() { String editorUri = EditN3Utils.getEditorUri(request,session,application); wdf = wdf.getUserAwareDaoFactory(editorUri); - if (prop.getForceStubObjectDeletion()) { + if (prop.getStubObjectRelation()) { Individual object = (Individual)request.getAttribute("object"); if (object==null) { object = getUnfilteredDaoFactory().getIndividualDao().getIndividualByURI(objectUri); diff --git a/webapp/web/templates/edit/specific/property_retry.jsp b/webapp/web/templates/edit/specific/property_retry.jsp index 5a149aba9..82d777573 100644 --- a/webapp/web/templates/edit/specific/property_retry.jsp +++ b/webapp/web/templates/edit/specific/property_retry.jsp @@ -216,14 +216,14 @@ Caution:delete object when statement deleted?
- - force deletion + + stub object relation with force delete - force deletion + stub object relation with force delete - + select from existing choices when adding statements?