/** * Rewrite fun() as ?var in exp Compile exists {} */ Filter compile(Expression exp) { Filter f = compiler.compile(exp); compileExist(f.getExp(), false); return f; }
Node compile(Atom at) { return compiler.createNode(at); }
public Collection<Node> getVariables() { return compiler.getVariables(); }
/** * Delete/Insert/Construct */ Exp compile(ASTQuery ast, fr.inria.corese.sparql.triple.parser.Exp exp) { Compiler save = compiler; compiler = fac.newInstance(); compiler.setAST(ast); Exp ee = compile(exp, false); if (save != null) { compiler = save; } return ee; }
Exp compileFilter(Triple triple, boolean opt) { List<Filter> qvec = compiler.compileFilter(triple); Exp exp; if (qvec.size() == 1) { exp = Exp.create(FILTER, qvec.get(0)); compileExist(qvec.get(0).getExp(), opt); } else { exp = Exp.create(AND); for (Filter qm : qvec) { Exp f = Exp.create(FILTER, qm); compileExist(qm.getExp(), opt); exp.add(f); } } return exp; }
/** * Delete/Insert/Construct */ Exp compile(ASTQuery ast, fr.inria.corese.sparql.triple.parser.Exp exp) { Compiler save = compiler; compiler = fac.newInstance(); compiler.setAST(ast); Exp ee = compile(exp, false); if (save != null) { compiler = save; } return ee; }
Exp compileFilter(Triple triple, boolean opt) { List<Filter> qvec = compiler.compileFilter(triple); Exp exp; if (qvec.size() == 1) { exp = Exp.create(FILTER, qvec.get(0)); compileExist(qvec.get(0).getExp(), opt); } else { exp = Exp.create(AND); for (Filter qm : qvec) { Exp f = Exp.create(FILTER, qm); compileExist(qm.getExp(), opt); exp.add(f); } } return exp; }
Node compile(Atom at) { return compiler.createNode(at); }
/** * Rewrite fun() as ?var in exp Compile exists {} */ Filter compile(Expression exp) { Filter f = compiler.compile(exp); compileExist(f.getExp(), false); return f; }
/** * subquery is compiled using a new compiler to get fresh new nodes to * prevent type inference on nodes between outer and sub queries */ Query compileQuery(ASTQuery ast) { // new Compiler save = compiler; compiler = fac.newInstance(); compiler.setAST(ast); Query q = compile(ast); subQueryList.add(q); // complete select, order by, group by complete(q, ast); having(q, ast); // bind is compiled as subquery q.setBind(ast.isBind()); q.setRelax(ast.isMore()); new QueryProfile(q).profile(); if (save != null) { compiler = save; } return q; }
public Collection<Node> getVariables() { return compiler.getVariables(); }
List<Node> bind(List<Constant> lVal) { List<Node> lNode = new ArrayList<Node>(); for (Constant val : lVal) { Node node = null; if (val != null) { node = compiler.createNode(val); } lNode.add(node); } return lNode; }
Exp compileEdge(Triple t, boolean opt) { Edge r = compiler.compile(t, ast.isInsertData()); Exp exp = Exp.create(EDGE, r); if (t.isType()) { Exp pe = pathType(ast, t); pe.setSystem(true); exp.setPath(pe); } if (t.isXPath()) { // deprecated ?x xpath() ?y exp.setType(EVAL); Filter xpath = compiler.compile(t.getXPath()); exp.setFilter(xpath); } else if (t.isPath()) { path(t, exp); } else if (ast.isCheck()) { check(t, r); } return exp; }
/** * subquery is compiled using a new compiler to get fresh new nodes to * prevent type inference on nodes between outer and sub queries */ Query compileQuery(ASTQuery ast) { // new Compiler save = compiler; compiler = fac.newInstance(); compiler.setAST(ast); Query q = compile(ast); subQueryList.add(q); // complete select, order by, group by complete(q, ast); having(q, ast); // bind is compiled as subquery q.setBind(ast.isBind()); q.setRelax(ast.isMore()); new QueryProfile(q).profile(); if (save != null) { compiler = save; } return q; }
List<Node> bind(List<Constant> lVal) { List<Node> lNode = new ArrayList<Node>(); for (Constant val : lVal) { Node node = null; if (val != null) { node = compiler.createNode(val); } lNode.add(node); } return lNode; }
Exp compileEdge(Triple t, boolean opt) { Edge r = compiler.compile(t, ast.isInsertData()); Exp exp = Exp.create(EDGE, r); if (t.isType()) { Exp pe = pathType(ast, t); pe.setSystem(true); exp.setPath(pe); } if (t.isXPath()) { // deprecated ?x xpath() ?y exp.setType(EVAL); Filter xpath = compiler.compile(t.getXPath()); exp.setFilter(xpath); } else if (t.isPath()) { path(t, exp); } else if (ast.isCheck()) { check(t, r); } return exp; }