minor fixes

This commit is contained in:
brianjlowe 2015-12-12 23:27:36 +02:00
parent 17fab2894c
commit ace972dd73
2 changed files with 11 additions and 21 deletions

View file

@ -130,12 +130,12 @@ public abstract class RDFServiceImpl implements RDFService {
return; return;
} }
for (ModelChange modelChange: changeSet.getModelChanges()) { for (ModelChange modelChange: changeSet.getModelChanges()) {
modelChange.getSerializedModel().reset();
notifyListeners(modelChange); notifyListeners(modelChange);
} }
} }
protected void notifyListeners(ModelChange modelChange) { protected void notifyListeners(ModelChange modelChange) throws IOException {
modelChange.getSerializedModel().reset();
Iterator<ChangeListener> iter = registeredListeners.iterator(); Iterator<ChangeListener> iter = registeredListeners.iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
ChangeListener listener = iter.next(); ChangeListener listener = iter.next();
@ -145,6 +145,7 @@ public abstract class RDFServiceImpl implements RDFService {
if (registeredJenaListeners.isEmpty()) { if (registeredJenaListeners.isEmpty()) {
return; return;
} }
modelChange.getSerializedModel().reset();
Model tempModel = ModelFactory.createDefaultModel(); Model tempModel = ModelFactory.createDefaultModel();
Iterator<ModelChangedListener> jenaIter = registeredJenaListeners.iterator(); Iterator<ModelChangedListener> jenaIter = registeredJenaListeners.iterator();
while (jenaIter.hasNext()) { while (jenaIter.hasNext()) {

View file

@ -173,19 +173,9 @@ public class SimpleReasoner extends StatementListener
Queue<String> individualURIs = new IndividualURIQueue<String>(); Queue<String> individualURIs = new IndividualURIQueue<String>();
Model m = RDFServiceUtils.parseModel(modelChange.getSerializedModel(), Model m = RDFServiceUtils.parseModel(modelChange.getSerializedModel(),
modelChange.getSerializationFormat()); modelChange.getSerializationFormat());
ResIterator subjIt = m.listSubjects(); StmtIterator sit = m.listStatements();
while(subjIt.hasNext()) { while(sit.hasNext()) {
Resource subj = subjIt.next(); queueRelevantIndividuals(sit.nextStatement(), individualURIs);
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());
}
} }
recomputeIndividuals(individualURIs); recomputeIndividuals(individualURIs);
} }
@ -198,7 +188,7 @@ public class SimpleReasoner extends StatementListener
@Override @Override
public void addedStatement(Statement stmt) { public void addedStatement(Statement stmt) {
doPlugins(ModelUpdate.Operation.ADD,stmt); doPlugins(ModelUpdate.Operation.ADD,stmt);
listenToStatement(stmt); listenToStatement(stmt, new IndividualURIQueue<String>());
} }
/* /*
@ -223,19 +213,18 @@ public class SimpleReasoner extends StatementListener
listenToStatement(stmt, individualURIs); listenToStatement(stmt, individualURIs);
} }
private void listenToStatement(Statement stmt) { private void listenToStatement(Statement stmt, Queue<String> individualURIs) {
Queue<String> individualURIs = new IndividualURIQueue<String>(); queueRelevantIndividuals(stmt, individualURIs);
listenToStatement(stmt, individualURIs); recomputeIndividuals(individualURIs);
} }
private void listenToStatement(Statement stmt, Queue<String> individualURIs) { private void queueRelevantIndividuals(Statement stmt, Queue<String> individualURIs) {
if(stmt.getSubject().isURIResource()) { if(stmt.getSubject().isURIResource()) {
individualURIs.add(stmt.getSubject().getURI()); individualURIs.add(stmt.getSubject().getURI());
} }
if(stmt.getObject().isURIResource() && !(RDF.type.equals(stmt.getPredicate()))) { if(stmt.getObject().isURIResource() && !(RDF.type.equals(stmt.getPredicate()))) {
individualURIs.add(stmt.getObject().asResource().getURI()); individualURIs.add(stmt.getObject().asResource().getURI());
} }
recomputeIndividuals(individualURIs);
} }
private void recomputeIndividuals(Queue<String> individualURIs) { private void recomputeIndividuals(Queue<String> individualURIs) {