class Partition extends PTransform<PCollection<T>, PCollectionList<T>> {

  public static <T> Partition<T> of(int numPartitions, PartitionFn<? super T> partitionFn) {
    return new Partition<>(new PartitionDoFn<T>(numPartitions, partitionFn));
  }

  private  Partition(PartitionDoFn<T> partitionDoFn);

}