001package com.box.sdkgen.schemas.signrequest;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.box.sdkgen.schemas.filemini.FileMini;
006import com.fasterxml.jackson.annotation.JsonFilter;
007import com.fasterxml.jackson.annotation.JsonProperty;
008import java.util.List;
009import java.util.Objects;
010
011@JsonFilter("nullablePropertyFilter")
012public class SignRequestSignFilesField extends SerializableObject {
013
014  protected List<FileMini> files;
015
016  /**
017   * Indicates whether the `sign_files` documents are processing and the PDFs may be out of date. A
018   * change to any document requires processing on all `sign_files`. We recommended waiting until
019   * processing is finished (and this value is true) before downloading the PDFs.
020   */
021  @JsonProperty("is_ready_for_download")
022  protected Boolean isReadyForDownload;
023
024  public SignRequestSignFilesField() {
025    super();
026  }
027
028  protected SignRequestSignFilesField(Builder builder) {
029    super();
030    this.files = builder.files;
031    this.isReadyForDownload = builder.isReadyForDownload;
032    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
033  }
034
035  public List<FileMini> getFiles() {
036    return files;
037  }
038
039  public Boolean getIsReadyForDownload() {
040    return isReadyForDownload;
041  }
042
043  @Override
044  public boolean equals(Object o) {
045    if (this == o) {
046      return true;
047    }
048    if (o == null || getClass() != o.getClass()) {
049      return false;
050    }
051    SignRequestSignFilesField casted = (SignRequestSignFilesField) o;
052    return Objects.equals(files, casted.files)
053        && Objects.equals(isReadyForDownload, casted.isReadyForDownload);
054  }
055
056  @Override
057  public int hashCode() {
058    return Objects.hash(files, isReadyForDownload);
059  }
060
061  @Override
062  public String toString() {
063    return "SignRequestSignFilesField{"
064        + "files='"
065        + files
066        + '\''
067        + ", "
068        + "isReadyForDownload='"
069        + isReadyForDownload
070        + '\''
071        + "}";
072  }
073
074  public static class Builder extends NullableFieldTracker {
075
076    protected List<FileMini> files;
077
078    protected Boolean isReadyForDownload;
079
080    public Builder files(List<FileMini> files) {
081      this.files = files;
082      return this;
083    }
084
085    public Builder isReadyForDownload(Boolean isReadyForDownload) {
086      this.isReadyForDownload = isReadyForDownload;
087      return this;
088    }
089
090    public SignRequestSignFilesField build() {
091      return new SignRequestSignFilesField(this);
092    }
093  }
094}