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}