/** * Cleans up any resources used by this iterator. After this call the given iterator should not be used. * * @param iter * Iterator to clean up */ protected void closeIterator(Iterator<?> iter) { if (iter instanceof ValueSet.ValueSetIterator) { closeIterator(((ValueSet.ValueSetIterator)iter).iter); } }
@Override public boolean add(IRI pred) { return AbstractModel.this.add(null, pred, null); }
@Override public void clear() { AbstractModel.this.clear(); }
@Override public boolean retainAll(Collection<?> c) { Iterator<Statement> e = iterator(); try { boolean modified = false; while (e.hasNext()) { if (!c.contains(e.next())) { e.remove(); modified = true; } } return modified; } finally { closeIterator(e); } }
@Override public Object[] toArray() { // Estimate size of array; be prepared to see more or fewer elements Iterator<Statement> it = iterator(); try { List<Object> r = new ArrayList<Object>(size()); while (it.hasNext()) { r.add(it.next()); } return r.toArray(); } finally { closeIterator(it); } }
@Override public boolean removeAll(Collection<?> c) { boolean modified = false; if (size() > c.size()) { Iterator<?> i = c.iterator(); try { while (i.hasNext()) modified |= remove(i.next()); } finally { closeIterator(c, i); } } else { Iterator<?> i = iterator(); try { while (i.hasNext()) { if (c.contains(i.next())) { i.remove(); modified = true; } } } finally { closeIterator(i); } } return modified; }
@Override public boolean containsAll(Collection<?> c) { Iterator<?> e = c.iterator(); try { while (e.hasNext()) if (!contains(e.next())) return false; return true; } finally { closeIterator(c, e); } }
@Override public boolean addAll(Collection<? extends Statement> c) { Iterator<? extends Statement> e = c.iterator(); try { boolean modified = false; while (e.hasNext()) { if (add(e.next())) modified = true; } return modified; } finally { closeIterator(c, e); } }
@Override public boolean remove(Object o) { if (o instanceof Value) { return AbstractModel.this.remove(null, null, (Value)o); } return false; }
@Override public boolean contains(Object o) { if (o instanceof Resource) { return AbstractModel.this.contains((Resource)o, null, null); } return false; }
@Override protected void removeIteration(Iterator<Statement> iter, IRI pred) { AbstractModel.this.removeTermIteration(iter, null, pred, null); } };
@Deprecated @Override public Iterator<Statement> match(Resource subj, IRI pred, Value obj, Resource... contexts) { return this.filter(subj, pred, obj, contexts).iterator(); }
@Override public boolean isEmpty() { return AbstractModel.this.isEmpty(); }
@Override public Iterator<V> iterator() { return new ValueSetIterator(AbstractModel.this.iterator()); }
@Override public boolean retainAll(Collection<?> c) { Iterator<Statement> e = iterator(); try { boolean modified = false; while (e.hasNext()) { if (!c.contains(e.next())) { e.remove(); modified = true; } } return modified; } finally { closeIterator(e); } }
@Override public <T> T[] toArray(T[] a) { // Estimate size of array; be prepared to see more or fewer elements Iterator<Statement> it = iterator(); try { List<Object> r = new ArrayList<Object>(size()); while (it.hasNext()) { r.add(it.next()); } return r.toArray(a); } finally { closeIterator(it); } }
@Override public boolean removeAll(Collection<?> c) { boolean modified = false; if (size() > c.size()) { Iterator<?> i = c.iterator(); try { while (i.hasNext()) modified |= remove(i.next()); } finally { closeIterator(c, i); } } else { Iterator<?> i = iterator(); try { while (i.hasNext()) { if (c.contains(i.next())) { i.remove(); modified = true; } } } finally { closeIterator(i); } } return modified; }
@Override public boolean containsAll(Collection<?> c) { Iterator<?> e = c.iterator(); try { while (e.hasNext()) if (!contains(e.next())) return false; return true; } finally { closeIterator(c, e); } }
@Override public boolean addAll(Collection<? extends Statement> c) { Iterator<? extends Statement> e = c.iterator(); try { boolean modified = false; while (e.hasNext()) { if (add(e.next())) modified = true; } return modified; } finally { closeIterator(c, e); } }
@Override public boolean remove(Object o) { if (o instanceof Resource) { return AbstractModel.this.remove((Resource)o, null, null); } return false; }