@Override
public boolean contains(Resource subj, IRI pred, Value obj, Resource... contexts) {
if (contexts == null || contexts.length == 1 && contexts[0] == null) {
Iterator<Statement> iter = matchPattern(subj, pred, obj, null);
while (iter.hasNext()) {
if (iter.next().getContext() == null)
return true;
}
return false;
}
else if (contexts.length == 0) {
return matchPattern(subj, pred, obj, null).hasNext();
}
else {
for (Resource ctx : contexts) {
if (ctx == null) {
if (contains(subj, pred, obj, (Resource[])null))
return true;
}
else if (matchPattern(subj, pred, obj, ctx).hasNext()) {
return true;
}
}
return false;
}
}