* @since 2.0.0
*/
class CriteriaExpressionBuilder {
public QueryExpressions getQueryExpressions(ExpressionFactory factory, CriteriaQueryImpl<?> q) {
QueryExpressions exps = new QueryExpressions();
exps.setContexts(q.getContexts());
evalAccessPaths(exps, factory, q);
exps.alias = null; // String
evalDistinct(exps, factory, q);
evalFetchJoin(exps, factory, q);
evalCrossJoinRoots(exps, factory, q);
evalFilter(exps, factory, q);
evalGrouping(exps, factory, q);
evalOrderingAndProjection(exps, factory, q);
exps.operation = QueryOperations.OP_SELECT;
exps.range = QueryExpressions.EMPTY_VALUES;
exps.resultClass = q.getResultType();
exps.shape = evalResultShape(q);
exps.parameterTypes = q.getParameterTypes();
exps.isAggregate();
return exps;
}