@Override public TupleExpr visit(OptionalBlock expr, QueryMetadata md) { return visit((ContainerBlock) expr, md); }
@Override public TupleExpr visit(GroupBlock expr, QueryMetadata md) { return visit((ContainerBlock)expr, md); }
@Override public TupleExpr visit(GroupBlock expr, QueryMetadata md) { return visit((ContainerBlock) expr, md); }
@Override public TupleExpr visit(GroupBlock expr, QueryMetadata md) { return visit((ContainerBlock) expr, md); }
@Override public TupleExpr visit(OptionalBlock expr, QueryMetadata md) { return visit((ContainerBlock) expr, md); }
@Override public TupleExpr visit(OptionalBlock expr, QueryMetadata md) { return visit((ContainerBlock)expr, md); }
@Override public TupleExpr visit(GraphBlock expr, QueryMetadata md) { graphs.push(toVar(expr.getContext(), md)); TupleExpr rv = visit((ContainerBlock) expr, md); graphs.pop(); return rv; }
@Override public TupleExpr visit(GraphBlock expr, QueryMetadata md) { graphs.push(toVar(expr.getContext(), md)); TupleExpr rv = visit((ContainerBlock) expr, md); graphs.pop(); return rv; }
@Override public TupleExpr visit(GraphBlock expr, QueryMetadata md) { graphs.push(toVar(expr.getContext(), md)); TupleExpr rv = visit((ContainerBlock)expr, md); graphs.pop(); return rv; }
@SuppressWarnings("unchecked") @Override public TupleExpr visit(SubQueryExpression<?> expr, QueryMetadata md) { for (Map.Entry<ParamExpression<?>, Object> entry : md.getParams().entrySet()){ expr.getMetadata().setParam((ParamExpression)entry.getKey(), entry.getValue()); } return visit(expr.getMetadata(), QueryLanguage.TUPLE); }
@SuppressWarnings("unchecked") @Override public TupleExpr visit(SubQueryExpression<?> expr, QueryMetadata md) { for (Map.Entry<ParamExpression<?>, Object> entry : md.getParams().entrySet()) { expr.getMetadata().setParam((ParamExpression) entry.getKey(), entry.getValue()); } return visit(expr.getMetadata(), QueryLanguage.TUPLE); }
@SuppressWarnings("unchecked") @Override public TupleExpr visit(SubQueryExpression<?> expr, QueryMetadata md) { for (Map.Entry<ParamExpression<?>, Object> entry : md.getParams().entrySet()) { expr.getMetadata().setParam((ParamExpression) entry.getKey(), entry.getValue()); } return visit(expr.getMetadata(), QueryLanguage.TUPLE); }
@SuppressWarnings("unchecked") @Override public <D, Q> Q createQuery(QueryLanguage<D, Q> queryLanguage, D definition) { boolean queryInference = !inference.subClassOf(); if (queryLanguage.equals(QueryLanguage.SPARQL)){ return (Q)createSPARQLQuery((String) definition); }else if (queryLanguage.equals(QueryLanguage.TUPLE)){ SesameRDFVisitor visitor = new SesameRDFVisitor(dialect); TupleExpr tuple = visitor.visit((QueryMetadata)definition, queryLanguage); TupleQueryModel queryModel = new TupleQueryModel(tuple); TupleQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); return (Q)new TupleQueryImpl(query, dialect); }else if (queryLanguage.equals(QueryLanguage.GRAPH)){ SesameRDFVisitor visitor = new SesameRDFVisitor(dialect); TupleExpr tuple = visitor.visit((QueryMetadata)definition, queryLanguage); GraphQueryModel queryModel = new GraphQueryModel(tuple); GraphQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); return (Q)new GraphQueryImpl(query, dialect); }else if (queryLanguage.equals(QueryLanguage.BOOLEAN)){ SesameRDFVisitor visitor = new SesameRDFVisitor(dialect); TupleExpr tuple = visitor.visit((QueryMetadata)definition, queryLanguage); BooleanQueryModel queryModel = new BooleanQueryModel(tuple); BooleanQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); return (Q)new BooleanQueryImpl(query, dialect); }else{ throw new UnsupportedQueryLanguageException(queryLanguage); } }
@SuppressWarnings("unchecked") @Override public <D, Q> Q createQuery(QueryLanguage<D, Q> queryLanguage, D definition) { boolean queryInference = !inference.subClassOf(); if (queryLanguage.equals(QueryLanguage.SPARQL)) { return (Q) createSPARQLQuery((String) definition); } else if (queryLanguage.equals(QueryLanguage.TUPLE)) { SesameRDFVisitor visitor = new SesameRDFVisitor(dialect); TupleExpr tuple = visitor.visit((QueryMetadata) definition, queryLanguage); TupleQueryModel queryModel = new TupleQueryModel(tuple); TupleQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); return (Q) new TupleQueryImpl(query, dialect); } else if (queryLanguage.equals(QueryLanguage.GRAPH)) { SesameRDFVisitor visitor = new SesameRDFVisitor(dialect); TupleExpr tuple = visitor.visit((QueryMetadata) definition, queryLanguage); GraphQueryModel queryModel = new GraphQueryModel(tuple); GraphQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); return (Q) new GraphQueryImpl(query, dialect); } else if (queryLanguage.equals(QueryLanguage.BOOLEAN)) { SesameRDFVisitor visitor = new SesameRDFVisitor(dialect); TupleExpr tuple = visitor.visit((QueryMetadata) definition, queryLanguage); BooleanQueryModel queryModel = new BooleanQueryModel(tuple); BooleanQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); return (Q) new BooleanQueryImpl(query, dialect); } else { throw new UnsupportedQueryLanguageException(queryLanguage); } }
TupleExpr tuple = visitor.visit((QueryMetadata) definition, queryLanguage); ParsedTupleQuery queryModel = new ParsedTupleQuery(tuple); TupleQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); TupleExpr tuple = visitor.visit((QueryMetadata) definition, queryLanguage); ParsedGraphQuery queryModel = new ParsedGraphQuery(tuple); GraphQuery query = DirectQuery.getQuery(connection, queryModel, queryInference); TupleExpr tuple = visitor.visit((QueryMetadata) definition, queryLanguage); ParsedBooleanQuery queryModel = new ParsedBooleanQuery(tuple); BooleanQuery query = DirectQuery.getQuery(connection, queryModel, queryInference);
tuple = toTuple(md.getWhere(), md); } else if (fromUIDs.size() == 1) { graphs.push(visit(fromUIDs.get(0), md)); tuple = toTuple(md.getWhere(), md); graphs.pop(); } else { QUID g = new QUID("__g"); graphs.push(visit(g, md)); BooleanBuilder b = new BooleanBuilder(); for (Constant<UID> co : fromUIDs) {
tuple = toTuple(md.getWhere(), md); } else if (fromUIDs.size() == 1) { graphs.push(visit(fromUIDs.get(0), md)); tuple = toTuple(md.getWhere(), md); graphs.pop(); } else { QUID g = new QUID("__g"); graphs.push(visit(g, md)); BooleanBuilder b = new BooleanBuilder(); for (Constant<UID> co : fromUIDs) {