scio-smb/src/main/java/org/apache/beam/sdk/extensions/smb/JsonSortedBucketIO.java [316:381]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    @Nullable
    abstract String getKeyFieldPrimary();

    @Nullable
    abstract String getKeyFieldSecondary();

    abstract Compression getCompression();

    abstract Builder<K1, K2> toBuilder();

    @AutoValue.Builder
    abstract static class Builder<K1, K2> {

      // Common
      abstract Builder<K1, K2> setKeyClassPrimary(Class<K1> keyClassPrimary);

      abstract Builder<K1, K2> setKeyClassSecondary(Class<K2> keyClassSecondary);

      abstract Builder<K1, K2> setOutputDirectory(ResourceId outputDirectory);

      abstract Builder<K1, K2> setTempDirectory(ResourceId tempDirectory);

      abstract Builder<K1, K2> setFilenameSuffix(String filenameSuffix);

      abstract Builder<K1, K2> setFilenamePrefix(String filenamePrefix);

      // JSON specific
      abstract Builder<K1, K2> setKeyFieldPrimary(String keyFieldPrimary);

      abstract Builder<K1, K2> setKeyFieldSecondary(String keyFieldSecondary);

      abstract Builder<K1, K2> setCompression(Compression compression);

      abstract TransformOutput<K1, K2> build();
    }

    /** Writes to the given output directory. */
    public TransformOutput<K1, K2> to(String outputDirectory) {
      return toBuilder()
          .setOutputDirectory(FileSystems.matchNewResource(outputDirectory, true))
          .build();
    }

    /** Specifies the temporary directory for writing. Defaults to --tempLocation if not set. */
    public TransformOutput<K1, K2> withTempDirectory(String tempDirectory) {
      return toBuilder()
          .setTempDirectory(FileSystems.matchNewResource(tempDirectory, true))
          .build();
    }

    /** Specifies the output filename suffix. */
    public TransformOutput<K1, K2> withSuffix(String filenameSuffix) {
      return toBuilder().setFilenameSuffix(filenameSuffix).build();
    }

    /** Specifies the output filename prefix. */
    public TransformOutput<K1, K2> withFilenamePrefix(String filenamePrefix) {
      return toBuilder().setFilenamePrefix(filenamePrefix).build();
    }

    /** Specifies the output file {@link Compression}. */
    public TransformOutput<K1, K2> withCompression(Compression compression) {
      return toBuilder().setCompression(compression).build();
    }

    @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



scio-smb/src/main/java/org/apache/beam/sdk/extensions/smb/TensorFlowBucketIO.java [331:396]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    @Nullable
    abstract String getKeyFieldPrimary();

    @Nullable
    abstract String getKeyFieldSecondary();

    abstract Compression getCompression();

    abstract Builder<K1, K2> toBuilder();

    @AutoValue.Builder
    abstract static class Builder<K1, K2> {

      // Common
      abstract Builder<K1, K2> setKeyClassPrimary(Class<K1> keyClassPrimary);

      abstract Builder<K1, K2> setKeyClassSecondary(Class<K2> keyClassSecondary);

      abstract Builder<K1, K2> setOutputDirectory(ResourceId outputDirectory);

      abstract Builder<K1, K2> setTempDirectory(ResourceId tempDirectory);

      abstract Builder<K1, K2> setFilenameSuffix(String filenameSuffix);

      abstract Builder<K1, K2> setFilenamePrefix(String filenamePrefix);

      // JSON specific
      abstract Builder<K1, K2> setKeyFieldPrimary(String keyFieldPrimary);

      abstract Builder<K1, K2> setKeyFieldSecondary(String keyFieldSecondary);

      abstract Builder<K1, K2> setCompression(Compression compression);

      abstract TransformOutput<K1, K2> build();
    }

    /** Writes to the given output directory. */
    public TransformOutput<K1, K2> to(String outputDirectory) {
      return toBuilder()
          .setOutputDirectory(FileSystems.matchNewResource(outputDirectory, true))
          .build();
    }

    /** Specifies the temporary directory for writing. Defaults to --tempLocation if not set. */
    public TransformOutput<K1, K2> withTempDirectory(String tempDirectory) {
      return toBuilder()
          .setTempDirectory(FileSystems.matchNewResource(tempDirectory, true))
          .build();
    }

    /** Specifies the output filename suffix. */
    public TransformOutput<K1, K2> withSuffix(String filenameSuffix) {
      return toBuilder().setFilenameSuffix(filenameSuffix).build();
    }

    /** Specifies the output filename prefix. */
    public TransformOutput<K1, K2> withFilenamePrefix(String filenamePrefix) {
      return toBuilder().setFilenamePrefix(filenamePrefix).build();
    }

    /** Specifies the output file {@link Compression}. */
    public TransformOutput<K1, K2> withCompression(Compression compression) {
      return toBuilder().setCompression(compression).build();
    }

    @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



