From df5d11e60d1fbaa448ace7e714fab3a593b5eba7 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Mon, 18 Jul 2011 16:08:57 +0000 Subject: [PATCH] NIHVIVO-2959 improvement to data property statement retrieval by property for individuals --- .../jena/DataPropertyStatementDaoJena.java | 21 +++++++++++++++---- .../vitro/webapp/dao/jena/IndividualSDB.java | 4 +--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyStatementDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyStatementDaoJena.java index a688c9820..fefea00e2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyStatementDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyStatementDaoJena.java @@ -172,14 +172,27 @@ public class DataPropertyStatementDaoJena extends JenaBaseDao implements DataPro public Collection getDataPropertyStatementsForIndividualByDataPropertyURI(Individual entity, String datapropURI) { Collection edList = new ArrayList(); - if (entity.getURI() == null) { + if (entity.getURI() == null || datapropURI == null) { return edList; } + // do something nicer if we're not dealing with a blank node + Resource res = ResourceFactory.createResource(entity.getURI()); + if (!VitroVocabulary.PSEUDO_BNODE_NS.equals(entity.getNamespace())) { + for (Literal lit : this.getDataPropertyValuesForIndividualByProperty(res.getURI(), datapropURI)) { + DataPropertyStatement ed = new DataPropertyStatementImpl(); + fillDataPropertyStatementWithJenaLiteral(ed, lit); + ed.setIndividualURI(entity.getURI()); + ed.setIndividual(entity); + ed.setDatapropURI(datapropURI); + edList.add(ed); + } + return edList; + } + // do something annoying if we are dealing with a blank node try { getOntModel().enterCriticalSection(Lock.READ); - OntResource ontRes = (VitroVocabulary.PSEUDO_BNODE_NS.equals(entity.getNamespace())) - ? (OntResource) getOntModel().createResource(new AnonId(entity.getLocalName())).as(OntResource.class) - : getOntModel().getOntResource(entity.getURI()); + OntResource ontRes = (OntResource) getOntModel().createResource( + new AnonId(entity.getLocalName())).as(OntResource.class); if (ontRes == null) { return edList; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java index b4337ca76..be70a37b7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java @@ -129,9 +129,7 @@ public class IndividualSDB extends IndividualImpl implements Individual { String getStatements = "CONSTRUCT " + "{ <"+individualURI+"> <" + RDFS.label.getURI() + - "> ?ooo. \n" + - "<"+individualURI+"> <" + VitroVocabulary.MONIKER + - "> ?moniker \n" + + "> ?ooo \n" + "} WHERE {" + "{ <"+individualURI+"> <" + RDFS.label.getURI() + "> ?ooo } \n" +