public void testNotificationOnSubject() { this.notifyingModel.open(); ModelChangedListener listener = new AbstractModelChangeListener() { @Override this.notifyingModel.addModelChangedListener(listener, new TriplePatternImpl(subject, Variable.ANY, Variable.ANY)); this.notifyingModel.addStatement(subject, predicate, "Test1"); this.notifyingModel.addStatement(predicate, object, "Test2"); this.notifyingModel.addStatement(predicate, subject, "Test3"); this.notifyingModel.removeModelChangedListener(listener); listener = new AbstractModelChangeListener() { @Override this.notifyingModel.removeStatement(subject, predicate, "Test1"); this.notifyingModel.removeStatement(predicate, object, "Test2"); this.notifyingModel.removeStatement(predicate, subject, "Test3"); this.notifyingModel.close();
@Override public void removeStatement(Resource subject, URI predicate, Node object) throws ModelRuntimeException { this.removeStatement(getDelegatedModel().createStatement(subject, predicate, object)); }
public void testModelConnection() { assertNotNull(this.notifyingModel); assertNotNull(this.notifyingModel.getDelegatedModel()); assertFalse(this.notifyingModel.isOpen()); this.notifyingModel.open(); assertTrue(this.notifyingModel.isOpen()); this.notifyingModel.close(); assertFalse(this.notifyingModel.isOpen()); }
public void testRemoveStatement() { this.notifyingModel.open(); this.notifyingModel.addStatement(subject, predicate, object); this.notifyingModel .addModelChangedListener(new AbstractModelChangeListener() { @Override public void removedStatement(Statement statement) { assertEquals(new StatementImpl(null, subject, predicate, object), statement); } @Override public void removedStatements( Iterator<? extends Statement> statements) { assertTrue(statements.hasNext()); assertEquals(new StatementImpl(null, subject, predicate, object), statements.next()); assertFalse(statements.hasNext()); } }); this.notifyingModel.close(); }
@Override public void addStatement(Resource subject, URI predicate, String literal, URI datatypeURI) throws ModelRuntimeException { this.addStatement(subject, predicate, getDelegatedModel() .createDatatypeLiteral(literal, datatypeURI)); }
@Override public Model getDefaultModel() { Model model = super.getDefaultModel(); NotifyingModelLayer notifyingModel = new NotifyingModelLayer(model); for (Map.Entry<ModelChangedListener, QuadPattern> entry : this.modelsetChangeListener .entrySet()) { // only if listening for (*, x,y,z) changes in default model are // detected if (entry.getValue().getContext() == Variable.ANY) { notifyingModel.addModelChangedListener(entry.getKey(), entry .getValue()); } } return notifyingModel; }
@Override public void removeStatements(ResourceOrVariable subject, UriOrVariable predicate, NodeOrVariable object) throws ModelRuntimeException { ModelAddRemoveMemoryImpl toBeRemoved = new ModelAddRemoveMemoryImpl(); toBeRemoved.addAll(this.findStatements(subject, predicate, object)); this.removeAll(toBeRemoved.iterator()); this.getDelegatedModel().removeAll(toBeRemoved.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(); }
@Override public synchronized void update(DiffReader diff) throws ModelRuntimeException { for(ModelChangedListener listener : this.modelChangeListener.keySet()) { listener.performedUpdate(diff); } getDelegatedModel().update(diff); }
@Override public void addAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while(other.hasNext()) { this.addStatement(other.next()); } }
@Override public void removeAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while(other.hasNext()) { this.removeStatement(other.next()); } }
@Override public void setUp() { super.setUp(); Model plainModel = getModelFactory().createModel(); assertNotNull(plainModel); this.notifyingModel = new NotifyingModelLayer(plainModel); }
@Override public void addStatement(Resource subject, URI predicate, String literal, URI datatypeURI) throws ModelRuntimeException { this.addStatement(subject, predicate, getDelegatedModel().createDatatypeLiteral(literal, datatypeURI)); }
public void testAddStatement() { this.notifyingModel.open(); this.notifyingModel.addStatement(predicate, object, subject); // this // statement // should // not cause a // notification this.notifyingModel .addModelChangedListener(new AbstractModelChangeListener() { @Override public void addedStatement(Statement statement) { assertEquals(new StatementImpl(null, subject, predicate, object), statement); } @Override public void addedStatements( Iterator<? extends Statement> statements) { assertTrue(statements.hasNext()); assertEquals(new StatementImpl(null, subject, predicate, object), statements.next()); assertFalse(statements.hasNext()); } }); this.notifyingModel.addStatement(subject, predicate, object); this.notifyingModel.close(); }
@Override public Model getDefaultModel() { Model model = super.getDefaultModel(); NotifyingModelLayer notifyingModel = new NotifyingModelLayer(model); for (Map.Entry<ModelChangedListener, QuadPattern> entry : this.modelsetChangeListener .entrySet()) { // only if listening for (*, x,y,z) changes in default model are // detected if (entry.getValue().getContext() == Variable.ANY) { notifyingModel.addModelChangedListener(entry.getKey(), entry .getValue()); } } return notifyingModel; }
@Override public void removeStatements(ResourceOrVariable subject, UriOrVariable predicate, NodeOrVariable object) throws ModelRuntimeException { ModelAddRemoveMemoryImpl toBeRemoved = new ModelAddRemoveMemoryImpl(); toBeRemoved.addAll(this.findStatements(subject, predicate, object)); this.removeAll(toBeRemoved.iterator()); this.getDelegatedModel().removeAll(toBeRemoved.iterator()); }
@Override public void update(DiffReader diff) throws ModelRuntimeException { for (ModelChangedListener listener : this.modelChangeListener.keySet()) { listener.performedUpdate(diff); } getDelegatedModel().update(diff); }
@Override public void addAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while (other.hasNext()) { this.addStatement(other.next()); } }
@Override public void removeAll(Iterator<? extends Statement> other) throws ModelRuntimeException { while (other.hasNext()) { this.removeStatement(other.next()); } }
@Override public void removeStatement(Resource subject, URI predicate, String literal, URI datatypeURI) throws ModelRuntimeException { this.removeStatement(subject, predicate, getDelegatedModel().createDatatypeLiteral(literal, datatypeURI)); }