code: public static <T> BatchingCallback<T> batchInto(int size, ExecutorService executor, Callback<? super List<T>> out, boolean failFast)
      {
          return new ExecutorBatchingCallback<T>(size, executor, out, failFast);
      }
docs: Collect {@code <T>} into a buffer, and schedule the given callback with the given executor
  whenever the buffer is full.  If failFast is false and any exceptions are thrown, a
  {@link BatchingCallbackExecutionException} is thrown when the BatchingCallback is {@link #commit()}ed.
  It suppresses all of the other thrown exceptions.  If failFast is true and an exception is thrown, it
  is rethrown as soon as it is noticed and further invocations will generate {@link CallbackRefusedException}.