@Nullable public Void visit(PatternBlock expr, @Nullable Void context) { // resource = true; if (lastPattern == null || !lastPattern.getSubject().equals(expr.getSubject())) { if (lastPattern != null) { append(".\n "); } handle(expr.getSubject()).append(" "); handle(expr.getPredicate()).append(" "); } else if (!lastPattern.getPredicate().equals(expr.getPredicate())) { append("; "); handle(expr.getPredicate()).append(" "); } else { append(", "); } handle(expr.getObject()).append(" "); lastPattern = expr; // resource = false; return null; }
@Override public STMT apply(Bindings input) { return new STMT( (ID) expr.getSubject().accept(QueryRDFVisitor.this, input), (UID) expr.getPredicate().accept(QueryRDFVisitor.this, input), (NODE) expr.getObject().accept(QueryRDFVisitor.this, input)); } };
@Override public Void visit(PatternBlock expr, Void context) { handle(expr.getSubject()); handle(expr.getPredicate()); handle(expr.getObject()); handle(expr.getContext()); return null; }
private Function<STMT, Bindings> createBindingsFunction(PatternBlock expr, @Nullable Expression<UID> context, final Bindings bindings) { final String s = getKey(expr.getSubject()); final String p = getKey(expr.getPredicate()); final String o = getKey(expr.getObject()); final String c = getKey(expr.getContext() != null ? expr.getContext() : context); return new Function<STMT, Bindings>() { @Override public Bindings apply(STMT input) { bindings.clear(); bind(bindings, s, input.getSubject()); bind(bindings, p, input.getPredicate()); bind(bindings, o, input.getObject()); bind(bindings, c, input.getContext()); // System.err.println(bindings); return bindings; } }; }
@Override public STMT apply(Bindings input) { return new STMT( (ID) expr.getSubject().accept(QueryRDFVisitor.this, input), (UID) expr.getPredicate().accept(QueryRDFVisitor.this, input), (NODE) expr.getObject().accept(QueryRDFVisitor.this, input), (UID) expr.getContext().accept(QueryRDFVisitor.this, input)); } };
@Override public Iterator<Bindings> iterator() { Bindings parent = bindings.getParent(); ID s = (ID) expr.getSubject().accept(QueryRDFVisitor.this, parent); UID p = (UID) expr.getPredicate().accept(QueryRDFVisitor.this, parent); NODE o = (NODE) expr.getObject().accept(QueryRDFVisitor.this, parent); UID c = null; if (expr.getContext() != null) { c = (UID) expr.getContext().accept(QueryRDFVisitor.this, parent); } else if (_context != null) { c = (UID) _context.accept(QueryRDFVisitor.this, parent); } bindings.clear(); return Iterators.transform(connection.findStatements(s, p, o, c, false), transformer); }
PatternBlock pa = (PatternBlock)expr; ProjectionElemList p = new ProjectionElemList(); ValueExpr subject = toValue(pa.getSubject(), md); if (subject instanceof Var){ Var v = (Var)subject;
PatternBlock pa = (PatternBlock) expr; ProjectionElemList p = new ProjectionElemList(); ValueExpr subject = toValue(pa.getSubject(), md); if (subject instanceof Var) { Var v = (Var) subject;
PatternBlock pa = (PatternBlock) expr; ProjectionElemList p = new ProjectionElemList(); ValueExpr subject = toValue(pa.getSubject(), md); if (subject instanceof Var) { Var v = (Var) subject;
@Override public TupleExpr visit(PatternBlock expr, QueryMetadata md) { Var subject = toVar(expr.getSubject(), md); Var predicate = toVar(expr.getPredicate(), md); Var object = toVar(expr.getObject(), md); StatementPattern pattern; if (expr.getContext() != null){ pattern = new StatementPattern(subject, predicate, object, toVar(expr.getContext(), md)); }else if (!graphs.isEmpty()){ pattern = new StatementPattern(subject, predicate, object, graphs.peek()); }else{ pattern = new StatementPattern(subject, predicate, object); } // datatype inference (string typed literal can be replaced with untyped) via union if (object.getValue() != null && object.getValue() instanceof Literal && XMLSchema.STRING.equals(((Literal)object.getValue()).getDatatype())){ Var object2 = new Var(object.getName(), dialect.getLiteral(new LIT(object.getValue().stringValue(), RDF.text))); return new Union(pattern, new StatementPattern(subject, predicate, object2, pattern.getContextVar())); }else{ return pattern; } }
@Override public TupleExpr visit(PatternBlock expr, QueryMetadata md) { Var subject = toVar(expr.getSubject(), md); Var predicate = toVar(expr.getPredicate(), md); Var object = toVar(expr.getObject(), md); StatementPattern pattern; if (expr.getContext() != null) { pattern = new StatementPattern(subject, predicate, object, toVar(expr.getContext(), md)); } else if (!graphs.isEmpty()) { pattern = new StatementPattern(subject, predicate, object, graphs.peek()); } else { pattern = new StatementPattern(subject, predicate, object); } // datatype inference (string typed literal can be replaced with // untyped) via union if (object.getValue() != null && object.getValue() instanceof Literal && XMLSchema.STRING.equals(((Literal) object.getValue()).getDatatype())) { Var object2 = new Var(object.getName(), dialect.getLiteral(new LIT(object.getValue().stringValue(), RDF.text))); return new Union(pattern, new StatementPattern(subject, predicate, object2, pattern.getContextVar())); } else { return pattern; } }
@Override public TupleExpr visit(PatternBlock expr, QueryMetadata md) { Var subject = toVar(expr.getSubject(), md); Var predicate = toVar(expr.getPredicate(), md); Var object = toVar(expr.getObject(), md); StatementPattern pattern; if (expr.getContext() != null) { pattern = new StatementPattern(subject, predicate, object, toVar(expr.getContext(), md)); } else if (!graphs.isEmpty()) { pattern = new StatementPattern(subject, predicate, object, graphs.peek()); } else { pattern = new StatementPattern(subject, predicate, object); } // datatype inference (string typed literal can be replaced with // untyped) via union if (object.getValue() != null && object.getValue() instanceof Literal && XMLSchema.STRING.equals(((Literal) object.getValue()).getDatatype())) { Var object2 = new Var(object.getName(), dialect.getLiteral(new LIT(object.getValue().stringValue(), RDF.text))); return new Union(pattern, new StatementPattern(subject, predicate, object2, pattern.getContextVar())); } else { return pattern; } }