@Override public Diff create(Iterator<? extends Statement> added, Iterator<? extends Statement> removed) { return new DiffImpl(added, removed); }
public Diff create(Iterator<? extends Statement> added, Iterator<? extends Statement> removed) { return new DiffImpl(added, removed); }
return new DiffImpl(added.iterator(), removed.iterator());
/** * Computes a Diff by using HashSets. */ public Diff getDiff(Iterator<? extends Statement> other) throws ModelRuntimeException { assertModel(); Set<Statement> otherSet = new HashSet<Statement>(); while (other.hasNext()) otherSet.add(other.next()); log.debug("this has " + size() + " triples, other has " + otherSet.size() + " triples"); // added Statements = present in other, but not this Set<Statement> added = new HashSet<Statement>(); for (Statement s : otherSet) { if (!this.contains(s)) added.add(s); } // removed = present here, but no longer in other Set<Statement> removed = new HashSet<Statement>(); for (Statement s : this) { if (!otherSet.contains(s)) { log.debug("otherSet does not contain " + s); removed.add(s); } } log.debug(added.size() + " triples added, " + removed.size() + " removed."); // These iterators are not closable, so we don't have to close them return new DiffImpl(added.iterator(), removed.iterator()); }
public void testChangeStatement() { this.notifyingModel .addModelChangedListener(new AbstractModelChangeListener() { @Override public void performedUpdate(DiffReader diff) { int i = 0; for (Statement s : diff.getAdded()) { i++; assertEquals(new StatementImpl(null, subject, predicate, object), s); } assertEquals(1, i); assertFalse(diff.getRemoved().iterator().hasNext()); } }); this.notifyingModel.open(); Diff diff = new DiffImpl(); diff.addStatement(subject, predicate, object); this.notifyingModel.update(diff); this.notifyingModel.close(); }
public Resource addReificationOf(Statement statement, Resource resource) { Diff diff = new DiffImpl(); diff.addStatement(resource, RDF.type, RDF.Statement); diff.addStatement(resource, RDF.subject, statement.getSubject()); diff.addStatement(resource, RDF.predicate, statement.getPredicate()); diff.addStatement(resource, RDF.object, statement.getObject()); update( (DiffReader) diff); return resource; }
@Override public Resource addReificationOf(Statement statement, Resource resource) { Diff diff = new DiffImpl(); diff.addStatement(resource, RDF.type, RDF.Statement); diff.addStatement(resource, RDF.subject, statement.getSubject()); diff.addStatement(resource, RDF.predicate, statement.getPredicate()); diff.addStatement(resource, RDF.object, statement.getObject()); update(diff); return resource; }
ClosableIterator<Statement> addIt = add.iterator(); ClosableIterator<Statement> removeIt = remove.iterator(); model.update(new DiffImpl(addIt, removeIt)); addIt.close(); removeIt.close();
public Diff getDiff(Iterator<? extends Statement> statements) throws ModelRuntimeException { ModelAddRemoveMemoryImpl other = new ModelAddRemoveMemoryImpl(); other.addAll(statements); ModelAddRemoveMemoryImpl add = new ModelAddRemoveMemoryImpl(); add.addAll(other.iterator()); add.removeAll(this.iterator()); ModelAddRemoveMemoryImpl removed = new ModelAddRemoveMemoryImpl(); removed.addAll(this.iterator()); removed.removeAll(other.iterator()); return new DiffImpl(add.iterator(), removed.iterator()); }
DiffReader diff = new DiffImpl(addModel.iterator(), removeModel.iterator()); addModel.close(); removeModel.close();
@Override public Diff getDiff(Iterator<? extends Statement> statements) throws ModelRuntimeException { ModelAddRemoveMemoryImpl other = new ModelAddRemoveMemoryImpl(); other.addAll(statements); ModelAddRemoveMemoryImpl add = new ModelAddRemoveMemoryImpl(); add.addAll(other.iterator()); add.removeAll(this.iterator()); ModelAddRemoveMemoryImpl removed = new ModelAddRemoveMemoryImpl(); removed.addAll(this.iterator()); removed.removeAll(other.iterator()); return new DiffImpl(add.iterator(), removed.iterator()); }
@Override public void applyRule(Model model, Map<String, URI> namespaceMap) { Model removeModel = RDF2Go.getModelFactory().createModel(); removeModel.open(); Model addModel = RDF2Go.getModelFactory().createModel(); addModel.open(); String query = Transformer.toSparqlConstruct(namespaceMap, this.add, this.search); ClosableIterator<Statement> it = model.sparqlConstruct(query) .iterator(); while (it.hasNext()) { Statement stmt = it.next(); log.trace("rule infers "+stmt); addModel.addStatement(stmt); } it.close(); DiffReader diff = new DiffImpl(addModel.iterator(), removeModel.iterator()); addModel.close(); removeModel.close(); model.update(diff); }
public Resource addReificationOf(Statement statement, Resource resource) { Diff diff = new DiffImpl(); diff.addStatement(createStatement(statement.getContext(), resource, RDF.type, RDF.Statement)); diff.addStatement(createStatement(statement.getContext(), resource, RDF.subject, statement.getSubject())); diff.addStatement(createStatement(statement.getContext(), resource, RDF.predicate, statement.getPredicate())); diff.addStatement(createStatement(statement.getContext(), resource, RDF.object, statement.getObject())); update(diff); return resource; }
@Override public Resource addReificationOf(Statement statement, Resource resource) { Diff diff = new DiffImpl(); diff.addStatement(createStatement(statement.getContext(), resource, RDF.type, RDF.Statement)); diff.addStatement(createStatement(statement.getContext(), resource, RDF.subject, statement.getSubject())); diff.addStatement(createStatement(statement.getContext(), resource, RDF.predicate, statement.getPredicate())); diff.addStatement(createStatement(statement.getContext(), resource, RDF.object, statement.getObject())); update(diff); return resource; }
public void deleteReification(Resource reificationResource) { Diff diff = new DiffImpl(); diff.removeStatement(reificationResource, RDF.type, RDF.Statement); ClosableIterator<Statement> it = findStatements(reificationResource, RDF.subject, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(reificationResource, RDF.predicate, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(reificationResource, RDF.object, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); update( (DiffReader) diff); } }
@Override public void deleteReification(Resource reificationResource) { Diff diff = new DiffImpl(); diff.removeStatement(reificationResource, RDF.type, RDF.Statement); ClosableIterator<Statement> it = findStatements(reificationResource, RDF.subject, Variable.ANY); while(it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(reificationResource, RDF.predicate, Variable.ANY); while(it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(reificationResource, RDF.object, Variable.ANY); while(it.hasNext()) { diff.removeStatement(it.next()); } it.close(); update(diff); } }
public void deleteReification(Resource reificationResource) { Diff diff = new DiffImpl(); diff.removeStatement(reificationResource, RDF.type, RDF.Statement); ClosableIterator<Statement> it = findStatements(Variable.ANY, reificationResource, RDF.subject, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(Variable.ANY, reificationResource, RDF.predicate, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(Variable.ANY, reificationResource, RDF.object, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); update(diff); }
@Override public void deleteReification(Resource reificationResource) { Diff diff = new DiffImpl(); ClosableIterator<Statement> it; it = findStatements(Variable.ANY, reificationResource, RDF.type, RDF.Statement); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(Variable.ANY, reificationResource, RDF.subject, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(Variable.ANY, reificationResource, RDF.predicate, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); it = findStatements(Variable.ANY, reificationResource, RDF.object, Variable.ANY); while (it.hasNext()) { diff.removeStatement(it.next()); } it.close(); update(diff); }