code: public <T extends DataObject> List<T> collect(Class<T> type, Callable<T> factory) {
          Generator<T> generator = new Generator<T>(type, factory);
          _generator = generator;
          return generator.list;
      }
docs: Asks the streamer to collect the rows into a list of DataObjects.