001package com.box.sdkgen.schemas.storagepolicymini; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.serialization.json.EnumWrapper; 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.util.Objects; 011 012/** A mini description of a Storage Policy object. */ 013@JsonFilter("nullablePropertyFilter") 014public class StoragePolicyMini extends SerializableObject { 015 016 /** The unique identifier for this storage policy. */ 017 protected final String id; 018 019 /** The value will always be `storage_policy`. */ 020 @JsonDeserialize(using = StoragePolicyMiniTypeField.StoragePolicyMiniTypeFieldDeserializer.class) 021 @JsonSerialize(using = StoragePolicyMiniTypeField.StoragePolicyMiniTypeFieldSerializer.class) 022 protected EnumWrapper<StoragePolicyMiniTypeField> type; 023 024 public StoragePolicyMini(@JsonProperty("id") String id) { 025 super(); 026 this.id = id; 027 this.type = 028 new EnumWrapper<StoragePolicyMiniTypeField>(StoragePolicyMiniTypeField.STORAGE_POLICY); 029 } 030 031 protected StoragePolicyMini(Builder builder) { 032 super(); 033 this.id = builder.id; 034 this.type = builder.type; 035 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 036 } 037 038 public String getId() { 039 return id; 040 } 041 042 public EnumWrapper<StoragePolicyMiniTypeField> getType() { 043 return type; 044 } 045 046 @Override 047 public boolean equals(Object o) { 048 if (this == o) { 049 return true; 050 } 051 if (o == null || getClass() != o.getClass()) { 052 return false; 053 } 054 StoragePolicyMini casted = (StoragePolicyMini) o; 055 return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); 056 } 057 058 @Override 059 public int hashCode() { 060 return Objects.hash(id, type); 061 } 062 063 @Override 064 public String toString() { 065 return "StoragePolicyMini{" + "id='" + id + '\'' + ", " + "type='" + type + '\'' + "}"; 066 } 067 068 public static class Builder extends NullableFieldTracker { 069 070 protected final String id; 071 072 protected EnumWrapper<StoragePolicyMiniTypeField> type; 073 074 public Builder(String id) { 075 super(); 076 this.id = id; 077 } 078 079 public Builder type(StoragePolicyMiniTypeField type) { 080 this.type = new EnumWrapper<StoragePolicyMiniTypeField>(type); 081 return this; 082 } 083 084 public Builder type(EnumWrapper<StoragePolicyMiniTypeField> type) { 085 this.type = type; 086 return this; 087 } 088 089 public StoragePolicyMini build() { 090 if (this.type == null) { 091 this.type = 092 new EnumWrapper<StoragePolicyMiniTypeField>(StoragePolicyMiniTypeField.STORAGE_POLICY); 093 } 094 return new StoragePolicyMini(this); 095 } 096 } 097}