001package com.box.sdkgen.managers.filewatermarks;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.box.sdkgen.serialization.json.EnumWrapper;
006import com.fasterxml.jackson.annotation.JsonFilter;
007import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
008import com.fasterxml.jackson.databind.annotation.JsonSerialize;
009import java.util.Objects;
010
011@JsonFilter("nullablePropertyFilter")
012public class UpdateFileWatermarkRequestBodyWatermarkField extends SerializableObject {
013
014  /**
015   * The type of watermark to apply.
016   *
017   * <p>Currently only supports one option.
018   */
019  @JsonDeserialize(
020      using =
021          UpdateFileWatermarkRequestBodyWatermarkImprintField
022              .UpdateFileWatermarkRequestBodyWatermarkImprintFieldDeserializer.class)
023  @JsonSerialize(
024      using =
025          UpdateFileWatermarkRequestBodyWatermarkImprintField
026              .UpdateFileWatermarkRequestBodyWatermarkImprintFieldSerializer.class)
027  protected EnumWrapper<UpdateFileWatermarkRequestBodyWatermarkImprintField> imprint;
028
029  public UpdateFileWatermarkRequestBodyWatermarkField() {
030    super();
031    this.imprint =
032        new EnumWrapper<UpdateFileWatermarkRequestBodyWatermarkImprintField>(
033            UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT);
034  }
035
036  protected UpdateFileWatermarkRequestBodyWatermarkField(Builder builder) {
037    super();
038    this.imprint = builder.imprint;
039    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
040  }
041
042  public EnumWrapper<UpdateFileWatermarkRequestBodyWatermarkImprintField> getImprint() {
043    return imprint;
044  }
045
046  @Override
047  public boolean equals(Object o) {
048    if (this == o) {
049      return true;
050    }
051    if (o == null || getClass() != o.getClass()) {
052      return false;
053    }
054    UpdateFileWatermarkRequestBodyWatermarkField casted =
055        (UpdateFileWatermarkRequestBodyWatermarkField) o;
056    return Objects.equals(imprint, casted.imprint);
057  }
058
059  @Override
060  public int hashCode() {
061    return Objects.hash(imprint);
062  }
063
064  @Override
065  public String toString() {
066    return "UpdateFileWatermarkRequestBodyWatermarkField{" + "imprint='" + imprint + '\'' + "}";
067  }
068
069  public static class Builder extends NullableFieldTracker {
070
071    protected EnumWrapper<UpdateFileWatermarkRequestBodyWatermarkImprintField> imprint;
072
073    public Builder() {
074      super();
075    }
076
077    public Builder imprint(UpdateFileWatermarkRequestBodyWatermarkImprintField imprint) {
078      this.imprint = new EnumWrapper<UpdateFileWatermarkRequestBodyWatermarkImprintField>(imprint);
079      return this;
080    }
081
082    public Builder imprint(
083        EnumWrapper<UpdateFileWatermarkRequestBodyWatermarkImprintField> imprint) {
084      this.imprint = imprint;
085      return this;
086    }
087
088    public UpdateFileWatermarkRequestBodyWatermarkField build() {
089      if (this.imprint == null) {
090        this.imprint =
091            new EnumWrapper<UpdateFileWatermarkRequestBodyWatermarkImprintField>(
092                UpdateFileWatermarkRequestBodyWatermarkImprintField.DEFAULT);
093      }
094      return new UpdateFileWatermarkRequestBodyWatermarkField(this);
095    }
096  }
097}