return new PatternIterator<Statement>(matchPattern(subj, pred, obj, null), subj, pred, obj, contexts);
public PatternIterator(Iterator<S> iter, Value subj, Value pred, Value obj, Value... contexts) { super(iter); this.subj = subj; this.pred = pred; this.obj = obj; this.contexts = notNull(contexts); }
private void findNextElement() { while (nextElement == null && filteredIter.hasNext()) { S candidate = filteredIter.next(); if (accept(candidate)) { nextElement = candidate; } } }
public boolean hasNext() { findNextElement(); return nextElement != null; }
public S next() { findNextElement(); S result = nextElement; if (result != null) { nextElement = null; nextCalled = true; return result; } else { throw new NoSuchElementException(); } }
@Override public Iterator<Statement> iterator() { return new PatternIterator<Statement>(matchPattern(subj, pred, obj, null), subj, pred, obj, contexts); }
public PatternIterator(Iterator<S> iter, Value subj, Value pred, Value obj, Value... contexts) { this.filteredIter = iter; this.subj = subj; this.pred = pred; this.obj = obj; this.contexts = notNull(contexts); }
@Override public Iterator<Statement> iterator() { return new PatternIterator<Statement>(match(subj, pred, obj, null), subj, pred, obj, contexts); } };
@Override protected boolean accept(S st) { if (subj != null && !subj.equals(st.getSubject())) { return false; } if (pred != null && !pred.equals(st.getPredicate())) { return false; } if (obj != null && !obj.equals(st.getObject())) { return false; } Resource stContext = st.getContext(); if (contexts != null && contexts.length == 0) { // Any context matches return true; } else { // Accept if one of the contexts from the pattern matches for (Value context : notNull(contexts)) { if (context == null && stContext == null) { return true; } if (context != null && context.equals(stContext)) { return true; } } return false; } }
private ModelIterator match(Value subj, Value pred, Value obj, Value... contexts) { Set<ModelStatement> set = choose(subj, pred, obj, contexts); Iterator<ModelStatement> it = set.iterator(); Iterator<ModelStatement> iter; iter = new PatternIterator(it, subj, pred, obj, contexts); return new ModelIterator(iter, set); }
for (Value context : notNull(contexts)) { if (context == null && stContext == null) { return true;
private ModelIterator matchPattern(Resource subj, IRI pred, Value obj, Resource... contexts) { Set<ModelStatement> set = choose(subj, pred, obj, contexts); Iterator<ModelStatement> it = set.iterator(); Iterator<ModelStatement> iter; iter = new PatternIterator(it, subj, pred, obj, contexts); return new ModelIterator(iter, set); }
Set<ModelStatement> chosen = choose(subj, pred, obj, contexts); Iterator<ModelStatement> iter = chosen.iterator(); iter = new PatternIterator(iter, subj, pred, obj, contexts); while (iter.hasNext()) { ModelStatement last = iter.next();
Set<ModelStatement> chosen = choose(subj, pred, obj, contexts); Iterator<ModelStatement> iter = chosen.iterator(); iter = new PatternIterator(iter, subj, pred, obj, contexts); while (iter.hasNext()) { ModelStatement last = iter.next();
return new PatternIterator<Statement>(match(subj, pred, obj, null), subj, pred, obj, contexts);
Iterator<Statement> iter = chosen.subIterator(before(subj, pred, obj, null), true, after(subj, pred, obj, null), true); iter = new PatternIterator<Statement>(iter, subj, pred, obj, contexts); removeAll(owner, chosen, iter);
.subIterator(before(subj, pred, obj, null),true, after(subj, pred, obj, null),true); iter = new PatternIterator<Statement>(iter, subj, pred, obj, contexts); removeAll(owner, chosen, iter);