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}