From ace972dd73f380b1d04874b452ef798c0cf2373d Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Sat, 12 Dec 2015 23:27:36 +0200 Subject: [PATCH] minor fixes --- .../rdfservice/impl/RDFServiceImpl.java | 5 ++-- .../vitro/webapp/reasoner/SimpleReasoner.java | 27 ++++++------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/RDFServiceImpl.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/RDFServiceImpl.java index c9aa2a01a..0a11d55b7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/RDFServiceImpl.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/RDFServiceImpl.java @@ -130,12 +130,12 @@ public abstract class RDFServiceImpl implements RDFService { return; } for (ModelChange modelChange: changeSet.getModelChanges()) { - modelChange.getSerializedModel().reset(); notifyListeners(modelChange); } } - protected void notifyListeners(ModelChange modelChange) { + protected void notifyListeners(ModelChange modelChange) throws IOException { + modelChange.getSerializedModel().reset(); Iterator iter = registeredListeners.iterator(); while (iter.hasNext()) { ChangeListener listener = iter.next(); @@ -145,6 +145,7 @@ public abstract class RDFServiceImpl implements RDFService { if (registeredJenaListeners.isEmpty()) { return; } + modelChange.getSerializedModel().reset(); Model tempModel = ModelFactory.createDefaultModel(); Iterator jenaIter = registeredJenaListeners.iterator(); while (jenaIter.hasNext()) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java index 94da91d29..e45f1d117 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java @@ -173,19 +173,9 @@ public class SimpleReasoner extends StatementListener Queue individualURIs = new IndividualURIQueue(); Model m = RDFServiceUtils.parseModel(modelChange.getSerializedModel(), modelChange.getSerializationFormat()); - ResIterator subjIt = m.listSubjects(); - while(subjIt.hasNext()) { - Resource subj = subjIt.next(); - if(subj.isURIResource()) { - individualURIs.add(subj.getURI()); - } - } - NodeIterator objIt = m.listObjects(); - while(objIt.hasNext()) { - RDFNode obj = objIt.next(); - if(obj.isURIResource()) { - individualURIs.add(obj.asResource().getURI()); - } + StmtIterator sit = m.listStatements(); + while(sit.hasNext()) { + queueRelevantIndividuals(sit.nextStatement(), individualURIs); } recomputeIndividuals(individualURIs); } @@ -198,7 +188,7 @@ public class SimpleReasoner extends StatementListener @Override public void addedStatement(Statement stmt) { doPlugins(ModelUpdate.Operation.ADD,stmt); - listenToStatement(stmt); + listenToStatement(stmt, new IndividualURIQueue()); } /* @@ -223,19 +213,18 @@ public class SimpleReasoner extends StatementListener listenToStatement(stmt, individualURIs); } - private void listenToStatement(Statement stmt) { - Queue individualURIs = new IndividualURIQueue(); - listenToStatement(stmt, individualURIs); + private void listenToStatement(Statement stmt, Queue individualURIs) { + queueRelevantIndividuals(stmt, individualURIs); + recomputeIndividuals(individualURIs); } - private void listenToStatement(Statement stmt, Queue individualURIs) { + private void queueRelevantIndividuals(Statement stmt, Queue individualURIs) { if(stmt.getSubject().isURIResource()) { individualURIs.add(stmt.getSubject().getURI()); } if(stmt.getObject().isURIResource() && !(RDF.type.equals(stmt.getPredicate()))) { individualURIs.add(stmt.getObject().asResource().getURI()); } - recomputeIndividuals(individualURIs); } private void recomputeIndividuals(Queue individualURIs) {