@Override public void addGraphListener(GraphListener listener, FilterTriple filter) { addGraphListener(listener, filter, 0); }
@Override public boolean add(Triple triple) { boolean success = performAdd(triple); if (success) { dispatchEvent(new AddEvent(this, triple)); } return success; }
@Override public Iterator<Triple> iterator() { return filter(null, null, null); }
@Override public boolean remove(Object o) { Triple triple = (Triple) o; boolean success = performRemove(triple); if (success) { dispatchEvent(new RemoveEvent(this, triple)); } return success; }
@Override public boolean removeAll(Collection<?> c) { boolean modified = false; for (Iterator<? extends Object> it = c.iterator(); it.hasNext();) { Object object = it.next(); if (remove(object)) { modified = true; } } return modified; }
@Override public void remove() { baseIter.remove(); dispatchEvent(new RemoveEvent(WatchableGraphWrapper.this, currentTriple)); } };
/** * A subclass of <code>AbstractGraph</code> should override * this method instead of <code>remove</code> for ImmutableGraph event support to be * added. * * @param o The triple to be removed from the triple collection * @return */ protected boolean performRemove(Triple triple) { Iterator<Triple> e = filter(null, null, null); while (e.hasNext()) { if (triple.equals(e.next())) { e.remove(); return true; } } return false; }
@Override public boolean contains(Object o) { if (!(o instanceof Triple)) { return false; } Triple t = (Triple) o; return filter(t.getSubject(), t.getPredicate(), t.getObject()).hasNext(); }