001package com.box.sdkgen.schemas.filefull;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import java.util.Objects;
008
009@JsonFilter("nullablePropertyFilter")
010public class FileFullWatermarkInfoField extends SerializableObject {
011
012  /** Specifies if this item has a watermark applied. */
013  @JsonProperty("is_watermarked")
014  protected Boolean isWatermarked;
015
016  /** Specifies if the watermark is inherited from any parent folder in the hierarchy. */
017  @JsonProperty("is_watermark_inherited")
018  protected Boolean isWatermarkInherited;
019
020  /** Specifies if the watermark is enforced by an access policy. */
021  @JsonProperty("is_watermarked_by_access_policy")
022  protected Boolean isWatermarkedByAccessPolicy;
023
024  public FileFullWatermarkInfoField() {
025    super();
026  }
027
028  protected FileFullWatermarkInfoField(Builder builder) {
029    super();
030    this.isWatermarked = builder.isWatermarked;
031    this.isWatermarkInherited = builder.isWatermarkInherited;
032    this.isWatermarkedByAccessPolicy = builder.isWatermarkedByAccessPolicy;
033    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
034  }
035
036  public Boolean getIsWatermarked() {
037    return isWatermarked;
038  }
039
040  public Boolean getIsWatermarkInherited() {
041    return isWatermarkInherited;
042  }
043
044  public Boolean getIsWatermarkedByAccessPolicy() {
045    return isWatermarkedByAccessPolicy;
046  }
047
048  @Override
049  public boolean equals(Object o) {
050    if (this == o) {
051      return true;
052    }
053    if (o == null || getClass() != o.getClass()) {
054      return false;
055    }
056    FileFullWatermarkInfoField casted = (FileFullWatermarkInfoField) o;
057    return Objects.equals(isWatermarked, casted.isWatermarked)
058        && Objects.equals(isWatermarkInherited, casted.isWatermarkInherited)
059        && Objects.equals(isWatermarkedByAccessPolicy, casted.isWatermarkedByAccessPolicy);
060  }
061
062  @Override
063  public int hashCode() {
064    return Objects.hash(isWatermarked, isWatermarkInherited, isWatermarkedByAccessPolicy);
065  }
066
067  @Override
068  public String toString() {
069    return "FileFullWatermarkInfoField{"
070        + "isWatermarked='"
071        + isWatermarked
072        + '\''
073        + ", "
074        + "isWatermarkInherited='"
075        + isWatermarkInherited
076        + '\''
077        + ", "
078        + "isWatermarkedByAccessPolicy='"
079        + isWatermarkedByAccessPolicy
080        + '\''
081        + "}";
082  }
083
084  public static class Builder extends NullableFieldTracker {
085
086    protected Boolean isWatermarked;
087
088    protected Boolean isWatermarkInherited;
089
090    protected Boolean isWatermarkedByAccessPolicy;
091
092    public Builder isWatermarked(Boolean isWatermarked) {
093      this.isWatermarked = isWatermarked;
094      return this;
095    }
096
097    public Builder isWatermarkInherited(Boolean isWatermarkInherited) {
098      this.isWatermarkInherited = isWatermarkInherited;
099      return this;
100    }
101
102    public Builder isWatermarkedByAccessPolicy(Boolean isWatermarkedByAccessPolicy) {
103      this.isWatermarkedByAccessPolicy = isWatermarkedByAccessPolicy;
104      return this;
105    }
106
107    public FileFullWatermarkInfoField build() {
108      return new FileFullWatermarkInfoField(this);
109    }
110  }
111}