class CompressedSource extends FileBasedSource<T> {

  public static <T> CompressedSource<T> from(FileBasedSource<T> sourceDelegate) {
    return new CompressedSource<>(sourceDelegate, CompressionMode.AUTO);
  }

  private  CompressedSource(
      FileBasedSource<T> sourceDelegate, DecompressingChannelFactory channelFactory);
  private  CompressedSource(
      FileBasedSource<T> sourceDelegate,
      DecompressingChannelFactory channelFactory,
      Metadata metadata,
      long minBundleSize,
      long startOffset,
      long endOffset);

}