/** * Populate a kernel expression tree by translating the components of this * receiver with the help of the given {@link ExpressionFactory}. */ QueryExpressions getQueryExpressions(ExpressionFactory factory) { Context context = new Context(null, null, null); _contexts.get().push(context); try { return new CriteriaExpressionBuilder().getQueryExpressions(factory, this); }finally{ _contexts.remove(); } }
/** * Populate a kernel expression tree by translating the components of this * receiver with the help of the given {@link ExpressionFactory}. */ QueryExpressions getQueryExpressions(ExpressionFactory factory) { _contexts = new Stack<Context>(); Context context = new Context(null, null, null); _contexts.push(context); return new CriteriaExpressionBuilder().getQueryExpressions(factory, this); }
/** * Populate a kernel expression tree by translating the components of this * receiver with the help of the given {@link ExpressionFactory}. */ QueryExpressions getQueryExpressions(ExpressionFactory factory) { Context context = new Context(null, null, null); _contexts.get().push(context); try { return new CriteriaExpressionBuilder().getQueryExpressions(factory, this); }finally{ _contexts.remove(); } }
/** * Populate a kernel expression tree by translating the components of this * receiver with the help of the given {@link ExpressionFactory}. */ QueryExpressions getQueryExpressions(ExpressionFactory factory) { _contexts = new Stack<Context>(); Context context = new Context(null, null, null); _contexts.push(context); return new CriteriaExpressionBuilder().getQueryExpressions(factory, this); }
/** * Constructor. * * @param factory the expression factory to use * @param query used to resolve variables, parameters, * and class names used in the query * @param parsedQuery the parsed query */ public JPQLExpressionBuilder(ExpressionFactory factory, ExpressionStoreQuery query, Object parsedQuery) { super(factory, query.getResolver()); contexts.push(new Context(parsedQuery instanceof ParsedJPQL ? (ParsedJPQL) parsedQuery : parsedQuery instanceof String ? getParsedQuery((String) parsedQuery) : null, null, null)); if (ctx().parsed == null) throw new InternalException(parsedQuery + ""); }
/** * Constructor. * * @param factory the expression factory to use * @param query used to resolve variables, parameters, * and class names used in the query * @param parsedQuery the parsed query */ public JPQLExpressionBuilder(ExpressionFactory factory, ExpressionStoreQuery query, Object parsedQuery) { super(factory, query.getResolver()); contexts.push(new Context(parsedQuery instanceof ParsedJPQL ? (ParsedJPQL) parsedQuery : parsedQuery instanceof String ? getParsedQuery((String) parsedQuery) : null, null, null)); if (ctx().parsed == null) throw new InternalException(parsedQuery + ""); }
/** * Constructor. * * @param factory the expression factory to use * @param query used to resolve variables, parameters, * and class names used in the query * @param parsedQuery the parsed query */ public JPQLExpressionBuilder(ExpressionFactory factory, ExpressionStoreQuery query, Object parsedQuery) { super(factory, query.getResolver()); contexts.push(new Context(parsedQuery instanceof ParsedJPQL ? (ParsedJPQL) parsedQuery : parsedQuery instanceof String ? getParsedQuery((String) parsedQuery) : null, null, null)); if (ctx().parsed == null) throw new InternalException(parsedQuery + ""); }
/** * Constructor. * * @param factory the expression factory to use * @param query used to resolve variables, parameters, * and class names used in the query * @param parsedQuery the parsed query */ public JPQLExpressionBuilder(ExpressionFactory factory, ExpressionStoreQuery query, Object parsedQuery) { super(factory, query.getResolver()); contexts.push(new Context(parsedQuery instanceof ParsedJPQL ? (ParsedJPQL) parsedQuery : parsedQuery instanceof String ? getParsedQuery((String) parsedQuery) : null, null, null)); if (ctx().parsed == null) throw new InternalException(parsedQuery + ""); }
/** * Convert this path to a kernel path value. */ @Override public Value toValue(ExpressionFactory factory, CriteriaQueryImpl<?> q) { final boolean subclasses = true; CriteriaExpressionBuilder exprBuilder = new CriteriaExpressionBuilder(); String alias = q.getAlias(this); ClassMetaData candidate = getCandidate(); _subq = factory.newSubquery(candidate, subclasses, alias); _subq.setMetaData(candidate); Stack<Context> contexts = getContexts(); Context context = new Context(null, _subq, contexts.peek()); contexts.push(context); _delegate.setContexts(contexts); QueryExpressions subexp = exprBuilder.getQueryExpressions(factory, _delegate); _subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) JPQLExpressionBuilder.checkEmbeddable(subexp.projections[0], null); contexts.pop(); return _subq; }
/** * Convert this path to a kernel path value. */ @Override public Value toValue(ExpressionFactory factory, CriteriaQueryImpl<?> q) { final boolean subclasses = true; CriteriaExpressionBuilder exprBuilder = new CriteriaExpressionBuilder(); String alias = q.getAlias(this); ClassMetaData candidate = getCandidate(); _subq = factory.newSubquery(candidate, subclasses, alias); _subq.setMetaData(candidate); Stack<Context> contexts = getContexts(); Context context = new Context(null, _subq, contexts.peek()); contexts.push(context); _delegate.setContexts(contexts); QueryExpressions subexp = exprBuilder.getQueryExpressions(factory, _delegate); _subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) JPQLExpressionBuilder.checkEmbeddable(subexp.projections[0], null); contexts.pop(); return _subq; }
/** * Convert this path to a kernel path value. */ @Override public Value toValue(ExpressionFactory factory, CriteriaQueryImpl<?> q) { final boolean subclasses = true; CriteriaExpressionBuilder exprBuilder = new CriteriaExpressionBuilder(); String alias = q.getAlias(this); ClassMetaData candidate = getCandidate(); _subq = factory.newSubquery(candidate, subclasses, alias); _subq.setMetaData(candidate); Stack<Context> contexts = getContexts(); Context context = new Context(null, _subq, contexts.peek()); contexts.push(context); _delegate.setContexts(contexts); QueryExpressions subexp = exprBuilder.getQueryExpressions(factory, _delegate); _subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) JPQLExpressionBuilder.checkEmbeddable(subexp.projections[0], null); contexts.pop(); return _subq; }
/** * Convert this path to a kernel path value. */ @Override public Value toValue(ExpressionFactory factory, CriteriaQueryImpl<?> q) { final boolean subclasses = true; CriteriaExpressionBuilder exprBuilder = new CriteriaExpressionBuilder(); String alias = q.getAlias(this); ClassMetaData candidate = getCandidate(); _subq = factory.newSubquery(candidate, subclasses, alias); _subq.setMetaData(candidate); Stack<Context> contexts = getContexts(); Context context = new Context(null, _subq, contexts.peek()); contexts.push(context); _delegate.setContexts(contexts); QueryExpressions subexp = exprBuilder.getQueryExpressions(factory, _delegate); _subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) JPQLExpressionBuilder.checkEmbeddable(subexp.projections[0], null); contexts.pop(); return _subq; }
private Value getSubquery(JPQLNode node) { final boolean subclasses = true; // parse the subquery ParsedJPQL parsed = new ParsedJPQL(node.parser.jpql, node); Context subContext = new Context(parsed, null, ctx()); contexts.push(subContext); ClassMetaData candidate = getCandidateMetaData(node); Subquery subq = subContext.getSubquery(); if (subq == null) { subq = factory.newSubquery(candidate, subclasses, nextAlias()); subContext.setSubquery(subq); } subq.setMetaData(candidate); // evaluate from clause for resolving variables defined in subquery JPQLNode from = node.getChild(1); subContext.from = evalFromClause(from, true); try { QueryExpressions subexp = getQueryExpressions(); subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) checkEmbeddable(subexp.projections[0]); return subq; } finally { // remove the subquery parse context contexts.pop(); } }
private Value getSubquery(JPQLNode node) { final boolean subclasses = true; // parse the subquery ParsedJPQL parsed = new ParsedJPQL(node.parser.jpql, node); Context subContext = new Context(parsed, null, ctx()); contexts.push(subContext); ClassMetaData candidate = getCandidateMetaData(node); Subquery subq = subContext.getSubquery(); if (subq == null) { subq = factory.newSubquery(candidate, subclasses, nextAlias()); subContext.setSubquery(subq); } subq.setMetaData(candidate); // evaluate from clause for resolving variables defined in subquery JPQLNode from = node.getChild(1); subContext.from = evalFromClause(from, true); try { QueryExpressions subexp = getQueryExpressions(); subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) checkEmbeddable(subexp.projections[0]); return subq; } finally { // remove the subquery parse context contexts.pop(); } }
private Value getSubquery(JPQLNode node) { final boolean subclasses = true; // parse the subquery ParsedJPQL parsed = new ParsedJPQL(node.parser.jpql, node); Context subContext = new Context(parsed, null, ctx()); contexts.push(subContext); ClassMetaData candidate = getCandidateMetaData(node); Subquery subq = subContext.getSubquery(); if (subq == null) { subq = factory.newSubquery(candidate, subclasses, nextAlias()); subContext.setSubquery(subq); } subq.setMetaData(candidate); // evaluate from clause for resolving variables defined in subquery JPQLNode from = node.getChild(1); subContext.from = evalFromClause(from, true); try { QueryExpressions subexp = getQueryExpressions(); subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) checkEmbeddable(subexp.projections[0]); return subq; } finally { // remove the subquery parse context contexts.pop(); } }
private Value getSubquery(JPQLNode node) { final boolean subclasses = true; // parse the subquery ParsedJPQL parsed = new ParsedJPQL(node.parser.jpql, node); Context subContext = new Context(parsed, null, ctx()); contexts.push(subContext); ClassMetaData candidate = getCandidateMetaData(node); Subquery subq = subContext.getSubquery(); if (subq == null) { subq = factory.newSubquery(candidate, subclasses, nextAlias()); subContext.setSubquery(subq); } subq.setMetaData(candidate); // evaluate from clause for resolving variables defined in subquery JPQLNode from = node.getChild(1); subContext.from = evalFromClause(from, true); try { QueryExpressions subexp = getQueryExpressions(); subq.setQueryExpressions(subexp); if (subexp.projections.length > 0) checkEmbeddable(subexp.projections[0]); return subq; } finally { // remove the subquery parse context contexts.pop(); } }
private static Context clone(Context orig, Context parent) { Context myParent = null; if (parent == null) { Context origParent = orig.getParent(); if (origParent != null) myParent = clone(orig.getParent(), null); } else myParent = parent; Context newCtx = new Context(orig.parsed, null, myParent); newCtx.from = orig.from; newCtx.meta = orig.meta; newCtx.schemaAlias = orig.schemaAlias; newCtx.setSchemas(orig.getSchemas()); newCtx.setVariables(orig.getVariables()); newCtx.cloneFrom = orig; Object select = orig.getSelect(); if (select != null) newCtx.setSelect(((SelectImpl)select).clone(newCtx)); newCtx.subquery = orig.subquery; List<Context> subsels = orig.getSubselContexts(); if (subsels != null) { for (Context subsel : subsels) newCtx.addSubselContext(clone(subsel, newCtx)); } return newCtx; } }
private static Context clone(Context orig, Context parent) { Context myParent = null; if (parent == null) { Context origParent = orig.getParent(); if (origParent != null) myParent = clone(orig.getParent(), null); } else myParent = parent; Context newCtx = new Context(orig.parsed, null, myParent); newCtx.from = orig.from; newCtx.meta = orig.meta; newCtx.schemaAlias = orig.schemaAlias; newCtx.setSchemas(orig.getSchemas()); newCtx.setVariables(orig.getVariables()); newCtx.cloneFrom = orig; Object select = orig.getSelect(); if (select != null) newCtx.setSelect(((SelectImpl)select).clone(newCtx)); newCtx.subquery = orig.subquery; List<Context> subsels = orig.getSubselContexts(); if (subsels != null) { for (Context subsel : subsels) newCtx.addSubselContext(clone(subsel, newCtx)); } return newCtx; } }
private static Context clone(Context orig, Context parent) { Context myParent = null; if (parent == null) { Context origParent = orig.getParent(); if (origParent != null) myParent = clone(orig.getParent(), null); } else myParent = parent; Context newCtx = new Context(orig.parsed, null, myParent); newCtx.from = orig.from; newCtx.meta = orig.meta; newCtx.schemaAlias = orig.schemaAlias; newCtx.setSchemas(orig.getSchemas()); newCtx.setVariables(orig.getVariables()); newCtx.cloneFrom = orig; Object select = orig.getSelect(); if (select != null) newCtx.setSelect(((SelectImpl)select).clone(newCtx)); newCtx.subquery = orig.subquery; List<Context> subsels = orig.getSubselContexts(); if (subsels != null) { for (Context subsel : subsels) newCtx.addSubselContext(clone(subsel, newCtx)); } return newCtx; } }
private static Context clone(Context orig, Context parent) { Context myParent = null; if (parent == null) { Context origParent = orig.getParent(); if (origParent != null) myParent = clone(orig.getParent(), null); } else myParent = parent; Context newCtx = new Context(orig.parsed, null, myParent); newCtx.from = orig.from; newCtx.meta = orig.meta; newCtx.schemaAlias = orig.schemaAlias; newCtx.setSchemas(orig.getSchemas()); newCtx.setVariables(orig.getVariables()); newCtx.cloneFrom = orig; Object select = orig.getSelect(); if (select != null) newCtx.setSelect(((SelectImpl)select).clone(newCtx)); newCtx.subquery = orig.subquery; List<Context> subsels = orig.getSubselContexts(); if (subsels != null) { for (Context subsel : subsels) newCtx.addSubselContext(clone(subsel, newCtx)); } return newCtx; } }