/** * Get the results as a list * * @param expressions * @return */ public ResultTransformer<List<Group>> list(Expression<?>... expressions) { return new GroupByList<K, Group>(key, expressions); }
expr = withoutGroupExpressions(expr); groupId = (K) row[0]; } else if (!Objects.equal(groupId, row[0])) { list.add(transform(group)); group = new GroupImpl(groupExpressions, maps); groupId = (K) row[0]; list.add(transform(group));
/** * Get the results as a list * * @param expression * @return */ public <V> ResultTransformer<List<V>> list(Expression<V> expression) { final Expression<V> lookup = getLookup(expression); return new GroupByList<K, V>(key, expression) { @Override protected V transform(Group group) { return group.getOne(lookup); } }; }
/** * Get the results as a list * * @param expression * @return */ public <V> ResultTransformer<List<V>> list(FactoryExpression<V> expression) { final FactoryExpression<?> transformation = FactoryExpressionUtils.wrap(expression); List<Expression<?>> args = transformation.getArgs(); return new GroupByList<K, V>(key, args.toArray(new Expression<?>[args.size()])) { @Override protected V transform(Group group) { // XXX Isn't group.toArray() suitable here? List<Object> args = new ArrayList<Object>(groupExpressions.size() - 1); for (int i = 1; i < groupExpressions.size(); i++) { args.add(group.getGroup(groupExpressions.get(i))); } return (V)transformation.newInstance(args.toArray()); } }; }