001package com.box.sdkgen.schemas.watermark;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.box.sdkgen.internal.utils.DateTimeUtils;
006import com.fasterxml.jackson.annotation.JsonFilter;
007import com.fasterxml.jackson.annotation.JsonProperty;
008import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
009import com.fasterxml.jackson.databind.annotation.JsonSerialize;
010import java.time.OffsetDateTime;
011import java.util.Objects;
012
013@JsonFilter("nullablePropertyFilter")
014public class WatermarkWatermarkField extends SerializableObject {
015
016  /** When this watermark was created. */
017  @JsonProperty("created_at")
018  @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class)
019  @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class)
020  protected OffsetDateTime createdAt;
021
022  /** When this task was modified. */
023  @JsonProperty("modified_at")
024  @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class)
025  @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class)
026  protected OffsetDateTime modifiedAt;
027
028  public WatermarkWatermarkField() {
029    super();
030  }
031
032  protected WatermarkWatermarkField(Builder builder) {
033    super();
034    this.createdAt = builder.createdAt;
035    this.modifiedAt = builder.modifiedAt;
036    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
037  }
038
039  public OffsetDateTime getCreatedAt() {
040    return createdAt;
041  }
042
043  public OffsetDateTime getModifiedAt() {
044    return modifiedAt;
045  }
046
047  @Override
048  public boolean equals(Object o) {
049    if (this == o) {
050      return true;
051    }
052    if (o == null || getClass() != o.getClass()) {
053      return false;
054    }
055    WatermarkWatermarkField casted = (WatermarkWatermarkField) o;
056    return Objects.equals(createdAt, casted.createdAt)
057        && Objects.equals(modifiedAt, casted.modifiedAt);
058  }
059
060  @Override
061  public int hashCode() {
062    return Objects.hash(createdAt, modifiedAt);
063  }
064
065  @Override
066  public String toString() {
067    return "WatermarkWatermarkField{"
068        + "createdAt='"
069        + createdAt
070        + '\''
071        + ", "
072        + "modifiedAt='"
073        + modifiedAt
074        + '\''
075        + "}";
076  }
077
078  public static class Builder extends NullableFieldTracker {
079
080    protected OffsetDateTime createdAt;
081
082    protected OffsetDateTime modifiedAt;
083
084    public Builder createdAt(OffsetDateTime createdAt) {
085      this.createdAt = createdAt;
086      return this;
087    }
088
089    public Builder modifiedAt(OffsetDateTime modifiedAt) {
090      this.modifiedAt = modifiedAt;
091      return this;
092    }
093
094    public WatermarkWatermarkField build() {
095      return new WatermarkWatermarkField(this);
096    }
097  }
098}