/** * 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 void enter(Value val) { if (!val.isVariable()) return; throw new UnsupportedException(_loc.get("inmem-agg-proj-var", _ctx.getCandidateType(), _ctx.getQueryString())); } }
public void enter(Value val) { if (!val.isVariable()) return; throw new UnsupportedException(_loc.get("inmem-agg-proj-var", _ctx.getCandidateType(), _ctx.getQueryString())); } }
public void enter(Value val) { if (!val.isVariable()) return; throw new UnsupportedException(_loc.get("inmem-agg-proj-var", _ctx.getCandidateType(), _ctx.getQueryString())); } }
public void enter(Value val) { if (!val.isVariable()) return; throw new UnsupportedException(_loc.get("inmem-agg-proj-var", _ctx.getCandidateType(), _ctx.getQueryString())); } }
public void enter(Value val) { if (!val.isVariable()) return; throw new UnsupportedException(_loc.get("inmem-agg-proj-var", _ctx.getCandidateType(), _ctx.getQueryString())); } }
/** * 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; }
/** * 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; }
/** * 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; }
private Value getTypeLiteral(JPQLNode node) { JPQLNode type = onlyChild(node); final String name = type.text; final Value val = getVariable(name, false); if (val instanceof Value && val.isVariable()) { Class<?> c = resolver.classForName(name, null); if (c != null) { Value typeLit = factory.newTypeLiteral(c, Literal.TYPE_CLASS); typeLit.setMetaData(getClassMetaData(name, false)); return typeLit; } } throw parseException(EX_USER, "not-type-literal", new Object[]{ name }, null); }
private Value getTypeLiteral(JPQLNode node) { JPQLNode type = onlyChild(node); final String name = type.text; final Value val = getVariable(name, false); if (val instanceof Value && val.isVariable()) { Class<?> c = resolver.classForName(name, null); if (c != null) { Value typeLit = factory.newTypeLiteral(c, Literal.TYPE_CLASS); typeLit.setMetaData(getClassMetaData(name, false)); return typeLit; } } throw parseException(EX_USER, "not-type-literal", new Object[]{ name }, null); }
private Value getTypeLiteral(JPQLNode node) { JPQLNode type = onlyChild(node); final String name = type.text; final Value val = getVariable(name, false); if (val instanceof Value && val.isVariable()) { Class<?> c = resolver.classForName(name, null); if (c != null) { Value typeLit = factory.newTypeLiteral(c, Literal.TYPE_CLASS); typeLit.setMetaData(getClassMetaData(name, false)); return typeLit; } } throw parseException(EX_USER, "not-type-literal", new Object[]{ name }, null); }
private Value getTypeLiteral(JPQLNode node) { JPQLNode type = onlyChild(node); final String name = type.text; final Value val = getVariable(name, false); if (val instanceof Value && val.isVariable()) { Class<?> c = resolver.classForName(name, null); if (c != null) { Value typeLit = factory.newTypeLiteral(c, Literal.TYPE_CLASS); typeLit.setMetaData(getClassMetaData(name, false)); return typeLit; } } throw parseException(EX_USER, "not-type-literal", new Object[]{ name }, null); }
/** * Throw proper exception if given value is a collection/map/array. */ protected void assertNotContainer(Value val, StoreQuery q) { // variables represent container elements, not the container itself if (val.isVariable()) return; Class<?> type; if (val instanceof Path) { FieldMetaData fmd = ((Path) val).last(); type = (fmd == null) ? val.getType() : fmd.getDeclaredType(); } else type = val.getType(); switch (JavaTypes.getTypeCode(type)) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: throw new UserException(_loc.get("container-projection", q.getContext().getQueryString())); } }
/** * Throw proper exception if given value is a collection/map/array. */ protected void assertNotContainer(Value val, StoreQuery q) { // variables represent container elements, not the container itself if (val.isVariable()) return; Class type; if (val instanceof Path) { FieldMetaData fmd = ((Path) val).last(); type = (fmd == null) ? val.getType() : fmd.getDeclaredType(); } else type = val.getType(); switch (JavaTypes.getTypeCode(type)) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: throw new UserException(_loc.get("container-projection", q.getContext().getQueryString())); } }