/** * Registers a variable for the given root expression. * A root expression is registered only for cross join. * @param root * @param var */ void registerRoot(Root<?> root, Value var) { if (var == null || !var.isVariable()) throw new IllegalArgumentException("Attempt to register non-variable " + var); _rootVariables.put(root, var); String alias = var.getName(); ctx().addSchema(alias, var.getMetaData()); ctx().addVariable(alias, var); }
/** * Registers a variable for the given root expression. * A root expression is registered only for cross join. * @param root * @param var */ void registerRoot(Root<?> root, Value var) { if (var == null || !var.isVariable()) throw new IllegalArgumentException("Attempt to register non-variable " + var); _rootVariables.put(root, var); String alias = var.getName(); ctx().addSchema(alias, var.getMetaData()); ctx().addVariable(alias, var); }
/** * Registers a variable for the given root expression. * A root expression is registered only for cross join. * @param root * @param var */ void registerRoot(Root<?> root, Value var) { if (var == null || !var.isVariable()) throw new IllegalArgumentException("Attempt to register non-variable " + var); _rootVariables.put(root, var); String alias = var.getName(); ctx().addSchema(alias, var.getMetaData()); ctx().addVariable(alias, var); }
/** * Registers a variable for the given root expression. * A root expression is registered only for cross join. * @param root * @param var */ void registerRoot(Root<?> root, Value var) { if (var == null || !var.isVariable()) throw new IllegalArgumentException("Attempt to register non-variable " + var); _rootVariables.put(root, var); String alias = var.getName(); ctx().addSchema(alias, var.getMetaData()); ctx().addVariable(alias, var); }
public Expression bindVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, false); }
public Expression bindVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, false); }
public Expression bindKeyVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InKeyExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, true); }
public Expression bindKeyVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InKeyExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, true); }
public Expression bindKeyVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InKeyExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, true); }
public Expression bindKeyVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InKeyExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, true); }
public Expression bindKeyVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InKeyExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, true); }
public Expression bindVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, false); }
public Expression bindVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, false); }
public Expression bindVariable(Value var, Value val) { // handle the strange case of using a constant path to bind a // variable; in these cases the variable acts like an unbound // variable that we limit by using an IN clause on the constant // value collection if (val instanceof Const) { PCPath path = new PCPath(_type, (Variable) var); path.setMetaData(var.getMetaData()); return new InExpression(path, (Const) val); } return new BindVariableExpression((Variable) var, (PCPath) val, false); }
/** * Returns a Value for the given node by eval'ing it. */ private Value getValue(JPQLNode node, int handleVar) { Value val = (Value) eval(node); // determined how to evaluate a variable if (!val.isVariable()) return val; else if (handleVar == VAR_PATH && !(val instanceof Path)) return newPath(val, val.getMetaData()); else if (handleVar == VAR_ERROR) throw parseException(EX_USER, "unexpected-var", new Object[]{ node.text }, null); else return val; }
/** * Returns a Value for the given node by eval'ing it. */ private Value getValue(JPQLNode node, int handleVar) { Value val = (Value) eval(node); // determined how to evaluate a variable if (!val.isVariable()) return val; else if (handleVar == VAR_PATH && !(val instanceof Path)) return newPath(val, val.getMetaData()); else if (handleVar == VAR_ERROR) throw parseException(EX_USER, "unexpected-var", new Object[]{ node.text }, null); else return val; }
public Expression contains(Value map, Value arg) { if (map instanceof Const) { if (arg instanceof Type) { // limited support for table per class inheritance verifyTypeOperation(arg, map, false); if (((ClassMapping) arg.getMetaData()).getDiscriminator().getColumns().length == 0) return new EqualTypeExpression((Val) arg, (Val) map); } return new InExpression((Val) arg, (Const) map); } if (map instanceof SubQ) return new InSubQExpression((Val) arg, (SubQ) map); return new ContainsExpression((Val) map, (Val) arg); }
public Expression contains(Value map, Value arg) { if (map instanceof Const) { if (arg instanceof Type) { // limited support for table per class inheritance verifyTypeOperation(arg, map, false); if (((ClassMapping) arg.getMetaData()).getDiscriminator().getColumns().length == 0) return new EqualTypeExpression((Val) arg, (Val) map); } return new InExpression((Val) arg, (Const) map); } if (map instanceof SubQ) return new InSubQExpression((Val) arg, (SubQ) map); return new ContainsExpression((Val) map, (Val) arg); }
public Expression contains(Value map, Value arg) { if (map instanceof Const) { if (arg instanceof Type) { // limited support for table per class inheritance verifyTypeOperation(arg, map, false); if (((ClassMapping) arg.getMetaData()).getDiscriminator().getColumns().length == 0) return new EqualTypeExpression((Val) arg, (Val) map); } return new InExpression((Val) arg, (Const) map); } if (map instanceof SubQ) return new InSubQExpression((Val) arg, (SubQ) map); return new ContainsExpression((Val) map, (Val) arg); }
public Expression contains(Value map, Value arg) { if (map instanceof Const) { if (arg instanceof Type) { // limited support for table per class inheritance verifyTypeOperation(arg, map, false); if (((ClassMapping) arg.getMetaData()).getDiscriminator().getColumns().length == 0) return new EqualTypeExpression((Val) arg, (Val) map); } return new InExpression((Val) arg, (Const) map); } if (map instanceof SubQ) return new InSubQExpression((Val) arg, (SubQ) map); return new ContainsExpression((Val) map, (Val) arg); }