@Override public void meet(final StatementPattern pattern) throws RuntimeException { pattern.setContextVar(graphVar); }
@Override public void meet(final StatementPattern pattern) throws RuntimeException { final Var graphVar = new Var(prefix + counter.getAndIncrement()); pattern.setContextVar(graphVar); filterGraphVars.add(graphVar.clone()); bindGraphVars.add(graphVar.clone()); }
public GroupBuilder<T, E> atoms(Set<StatementPattern> thePatterns) { for (StatementPattern aPattern : thePatterns) { aPattern.setContextVar(mContext); aPattern.setScope(mScope); } mGroup.addAll(thePatterns); return this; }
public GroupBuilder<T, E> setContext(Value theContextValue) { mContext = valueToVar(theContextValue); for (StatementPattern aPattern : mGroup.getPatterns()) { aPattern.setContextVar(mContext); } return this; }
private GroupBuilder<T, E> addPattern(StatementPattern thePattern) { thePattern.setContextVar(mContext); thePattern.setScope(mScope); mGroup.add(thePattern); return this; }
@Override public void meet(StatementPattern node) { if (predicate.equals(SeRQO.SCOPE)) { Literal lit = (Literal) object; node.setScope(StatementPattern.Scope.valueOf(lit.getLabel())); } else if (predicate.equals(SeRQO.SUBJECTVAR)) { node.setSubjectVar((Var) model.get(object)); } else if (predicate.equals(SeRQO.PREDICATEVAR)) { node.setPredicateVar((Var) model.get(object)); } else if (predicate.equals(SeRQO.OBJECTVAR)) { node.setObjectVar((Var) model.get(object)); } else if (predicate.equals(SeRQO.CONTEXTVAR)) { node.setContextVar((Var) model.get(object)); } else { super.meet(node); } }
/** * Creates a statement pattern that matches a subject-, predicate-, object- * and context variable against statements from the specified context scope. */ public StatementPattern(Scope scope, Var subjVar, Var predVar, Var objVar, Var conVar) { setScope(scope); setSubjectVar(subjVar); setPredicateVar(predVar); setObjectVar(objVar); setContextVar(conVar); }
@Override public void replaceChildNode(QueryModelNode current, QueryModelNode replacement) { if (subjectVar == current) { setSubjectVar((Var)replacement); } else if (predicateVar == current) { setPredicateVar((Var)replacement); } else if (objectVar == current) { setObjectVar((Var)replacement); } else if (contextVar == current) { setContextVar((Var)replacement); } else { super.replaceChildNode(current, replacement); } }
private CloseableIteration<BindingSet, QueryEvaluationException> createIteration() throws QueryEvaluationException { Var startVar = createAnonVar(ANON_SUBJECT_VAR); Var predicate = createAnonVar(ANON_PREDICATE_VAR); Var endVar = createAnonVar(ANON_OBJECT_VAR); StatementPattern subjects = new StatementPattern(startVar, predicate, endVar); if (contextVar != null) { subjects.setScope(Scope.NAMED_CONTEXTS); subjects.setContextVar(contextVar); } CloseableIteration<BindingSet, QueryEvaluationException> iter = evaluationStrategy.evaluate( subjects, bindings); return iter; }
sp.setContextVar(pattern.getContextVar()); sp.setSubjectVar(pattern.getObjectVar());
@Override public StatementPattern clone() { StatementPattern clone = (StatementPattern)super.clone(); clone.setSubjectVar(getSubjectVar().clone()); clone.setPredicateVar(getPredicateVar().clone()); clone.setObjectVar(getObjectVar().clone()); if (getContextVar() != null) { clone.setContextVar(getContextVar().clone()); } return clone; } }
@Override public void meet(StatementPattern sp) throws RuntimeException { super.meet(sp); ExternalModel externalR = new ExternalModel(sp, dataset, additional); ExternalModel externalA = new ExternalModel(sp, dataset, additional); Model minus = open(externalR.filter(removed, bindings)); Model union = open(externalA.filter(added, bindings)); TupleExpr node = sp; if (!minus.isEmpty()) { modified = true; externalR.setModel(minus); if (sp.getContextVar() == null) { // difference must compare context, but only works if non-null sp.setContextVar(newVar()); } Difference rpl = new Difference(node.clone(), externalR); node.replaceWith(rpl); node = rpl; } if (!union.isEmpty()) { modified = true; externalA.setModel(union); Union rpl = new Union(externalA, node.clone()); node.replaceWith(rpl); node = rpl; } }