code: public <V> ResultTransformer<CloseableIterator<V>> iterate(FactoryExpression<V> expression) {
          final FactoryExpression<V> transformation = FactoryExpressionUtils.wrap(expression);
          List<Expression<?>> args = transformation.getArgs();
          return new GroupByIterate<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 transformation.newInstance(args.toArray());
              }
          };
      }
docs: Get the results as a closeable iterator
  
  @param expression projection
  @return new result transformer