public VarExprList(Var var, Expr expr) { this() ; add(var, expr) ; }
final protected void add(Var var, Expr expr) { assignments.add(var, expr) ; }
private void add(Var var, Expr expr) { assignments.add(var, expr) ; }
public void addAll(VarExprList other) { for ( Iterator<Var> iter = other.vars.iterator() ; iter.hasNext() ; ) { Var v = iter.next () ; Expr e = other.getExpr(v) ; add(v, e) ; } }
public void addAll(VarExprList other) { for ( Iterator<Var> iter = other.vars.iterator() ; iter.hasNext() ; ) { Var v = iter.next () ; Expr e = other.getExpr(v) ; add(v, e) ; } }
public void add(Var var, Expr expr) { if ( expr == null ) { add(var) ; return ; } if ( var == null ) throw new ARQInternalErrorException("Attempt to add a named expression with a null variable") ; if ( exprs.containsKey(var) ) throw new ARQInternalErrorException("Attempt to assign an expression again") ; add(var) ; exprs.put(var, expr) ; }
public void add(Var var, Expr expr) { if ( expr == null ) { add(var) ; return ; } if ( var == null ) throw new ARQInternalErrorException("Attempt to add a named expression with a null variable") ; if ( exprs.containsKey(var) ) throw new ARQInternalErrorException("Attempt to assign an expression again") ; add(var) ; exprs.put(var, expr) ; }
private static void _addVarExpr(VarExprList varExprList, Var v, Expr expr) { if ( varExprList.contains(v) ) // SELECT ?x (?a+?b AS ?x) // SELECT (2*?a AS ?x) (?a+?b AS ?x) throw new QueryBuildException("Duplicate variable in result projection '"+v+"'") ; varExprList.add(v, expr) ; }
static private Op createExtend(Op op, Var var, Expr expr) { VarExprList x = new VarExprList() ; x.add(var, expr) ; return new OpExtend(op, x) ; }
private static void _addVarExpr(VarExprList varExprList, Var v, Expr expr) { if ( varExprList.contains(v) ) // SELECT ?x (?a+?b AS ?x) // SELECT (2*?a AS ?x) (?a+?b AS ?x) throw new QueryBuildException("Duplicate variable in result projection '"+v+"'") ; varExprList.add(v, expr) ; }
static private Op createAssign(Op op, Var var, Expr expr) { VarExprList x = new VarExprList() ; x.add(var, expr) ; return new OpAssign(op, x) ; }
static private Op createExtend(Op op, Var var, Expr expr) { VarExprList x = new VarExprList() ; x.add(var, expr) ; return new OpExtend(op, x) ; }
static public Op assign(Op op, Var var, Expr expr) { if ( ! ( op instanceof OpAssign ) ) return createAssign(op, var, expr) ; OpAssign opAssign = (OpAssign)op ; if ( opAssign.assignments.contains(var) ) return createAssign(op, var, expr) ; opAssign.assignments.add(var, expr) ; return opAssign ; }
static public Op extend(Op op, Var var, Expr expr) { if ( !(op instanceof OpExtend) ) return createExtend(op, var, expr) ; OpExtend opExtend = (OpExtend)op ; if ( opExtend.assignments.contains(var) ) return createExtend(op, var, expr) ; opExtend.assignments.add(var, expr) ; return opExtend ; }
static public Op extend(Op op, Var var, Expr expr) { if ( ! ( op instanceof OpExtend ) ) return createExtend(op, var, expr) ; OpExtend opAssign = (OpExtend)op ; if ( opAssign.assignments.contains(var) ) return createExtend(op, var, expr) ; opAssign.assignments.add(var, expr) ; return opAssign ; }
private static void _addVar(VarExprList varExprList, Var v) { if ( varExprList.contains(v) ) { Expr expr = varExprList.getExpr(v) ; if ( expr != null ) // SELECT (?a+?b AS ?x) ?x throw new QueryBuildException("Duplicate variable (had an expression) in result projection '"+v+"'") ; // SELECT ?x ?x if ( ! ARQ.allowDuplicateSelectColumns ) return ; // else drop thorugh and have two variables of the same name. } varExprList.add(v) ; }
private static void _addVar(VarExprList varExprList, Var v) { if ( varExprList.contains(v) ) { Expr expr = varExprList.getExpr(v) ; if ( expr != null ) // SELECT (?a+?b AS ?x) ?x throw new QueryBuildException("Duplicate variable (had an expression) in result projection '"+v+"'") ; // SELECT ?x ?x if ( ! ARQ.allowDuplicateSelectColumns ) return ; // else drop thorugh and have two variables of the same name. } varExprList.add(v) ; }
public void addGroupBy(Var v, Expr expr) { if ( v == null ) v = allocInternVar() ; if ( expr.isVariable() && v.isAllocVar() ) { // It was (?x) with no AS - keep the name by adding by variable. addGroupBy(expr.asVar()) ; return ; } groupVars.add(v, expr) ; }
public void addGroupBy(Var v, Expr expr) { if ( v == null ) v = allocInternVar() ; if ( expr.isVariable() && v.isAllocVar() ) { // It was (?x) with no AS - keep the name by adding by variable. addGroupBy(expr.asVar()) ; return ; } groupVars.add(v, expr) ; }
@Override public VarExprList getProject() { List<ProjectedVariable> variables = selectQuery.getSelectClause() .getProjectedVariables(); VarExprList list = new VarExprList(); for (ProjectedVariable variable : variables) { Var var = Var.alloc(variable.getVariable().getName()); list.add(var); } return list; }