@Override public Diff create(Iterator<? extends Statement> added, Iterator<? extends Statement> removed) { return new DiffImpl(added, removed); }
@Override public void addAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while(other.hasNext()) { addStatement(other.next()); } }
public void dump() { log.debug("Dumping diff to System.out"); List<Statement> added = new ArrayList<Statement>(); for (Statement s : getAdded()) { added.add(s); } Collections.sort(added); for (Statement s : added) { System.out.println("[+] " + s); } // removed List<Statement> removed = new ArrayList<Statement>(); for (Statement s : getRemoved()) { removed.add(s); } Collections.sort(removed); for (Statement s : removed) { System.out.println("[-] " + s); } }
@Override public void removeAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while(other.hasNext()) { removeStatement(other.next()); } }
@Override public void dump() { log.trace("Dumping diff to System.out"); List<Statement> added = new ArrayList<Statement>(); for(Statement s : getAdded()) { added.add(s); } Collections.sort(added); for(Statement s : added) { System.out.println("[+] " + s); } // removed List<Statement> removed = new ArrayList<Statement>(); for(Statement s : getRemoved()) { removed.add(s); } Collections.sort(removed); for(Statement s : removed) { System.out.println("[-] " + s); } }
@Override public void removeAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while (other.hasNext()) { removeStatement(other.next()); } }
@Override public boolean equals(Object other) { if (other instanceof Diff) { Diff diff = (Diff) other; try { log.debug("Comparing two diffs"); // IMPROVE compare less expensive ModelAddRemoveMemoryImpl otherAdded = new ModelAddRemoveMemoryImpl(); otherAdded.addAll(diff.getAdded().iterator()); ModelAddRemoveMemoryImpl otherRemoved = new ModelAddRemoveMemoryImpl(); otherRemoved.addAll(diff.getRemoved().iterator()); log.debug("This diff: " + this.addedSet.size() + " added and " + this.removedSet.size() + " removed"); log.debug("Other diff: " + otherAdded.set.size() + " added and " + otherRemoved.set.size() + " removed"); // now compare the sets of statements return equals(this.addedSet, otherAdded.getSet()) && equals(this.removedSet, otherRemoved.getSet()); } catch (ModelRuntimeException e) { throw new RuntimeException(e); } } // else if (other == null) { log.debug("other is null, but not a DiffImpl"); } else { log.debug("other is not a diff but " + other.getClass()); } return false; }
public Diff create(Iterator<? extends Statement> added, Iterator<? extends Statement> removed) { return new DiffImpl(added, removed); }
@Override public void addAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while (other.hasNext()) { addStatement(other.next()); } }
@Override public void removeStatement(Resource subject, URI predicate, Node object) throws ModelRuntimeException { removeStatement(new StatementImpl(null, subject, predicate, object)); }
return new DiffImpl(added.iterator(), removed.iterator());
@Override public void addStatement(Resource subject, URI predicate, Node object) throws ModelRuntimeException { addStatement(new StatementImpl(null, subject, predicate, object)); }
@Override public void removeStatement(Resource subject, URI predicate, Node object) throws ModelRuntimeException { removeStatement(new StatementImpl(null, subject, predicate, object)); }
/** * 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()); }
@Override public void addStatement(Resource subject, URI predicate, Node object) throws ModelRuntimeException { addStatement(new StatementImpl(null, subject, predicate, object)); }
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; }