001package com.box.sdkgen.schemas.watermark;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import java.util.Objects;
007
008/**
009 * A watermark is a semi-transparent overlay on an embedded file preview that displays a viewer's
010 * email address or user ID and the time of access over a file's content.
011 */
012@JsonFilter("nullablePropertyFilter")
013public class Watermark extends SerializableObject {
014
015  protected WatermarkWatermarkField watermark;
016
017  public Watermark() {
018    super();
019  }
020
021  protected Watermark(Builder builder) {
022    super();
023    this.watermark = builder.watermark;
024    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
025  }
026
027  public WatermarkWatermarkField getWatermark() {
028    return watermark;
029  }
030
031  @Override
032  public boolean equals(Object o) {
033    if (this == o) {
034      return true;
035    }
036    if (o == null || getClass() != o.getClass()) {
037      return false;
038    }
039    Watermark casted = (Watermark) o;
040    return Objects.equals(watermark, casted.watermark);
041  }
042
043  @Override
044  public int hashCode() {
045    return Objects.hash(watermark);
046  }
047
048  @Override
049  public String toString() {
050    return "Watermark{" + "watermark='" + watermark + '\'' + "}";
051  }
052
053  public static class Builder extends NullableFieldTracker {
054
055    protected WatermarkWatermarkField watermark;
056
057    public Builder watermark(WatermarkWatermarkField watermark) {
058      this.watermark = watermark;
059      return this;
060    }
061
062    public Watermark build() {
063      return new Watermark(this);
064    }
065  }
066}