001package com.box.sdkgen.schemas.metadatacascadepolicy; 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.databind.annotation.JsonDeserialize; 008import com.fasterxml.jackson.databind.annotation.JsonSerialize; 009import java.util.Objects; 010 011@JsonFilter("nullablePropertyFilter") 012public class MetadataCascadePolicyParentField extends SerializableObject { 013 014 /** The value will always be `folder`. */ 015 @JsonDeserialize( 016 using = 017 MetadataCascadePolicyParentTypeField.MetadataCascadePolicyParentTypeFieldDeserializer 018 .class) 019 @JsonSerialize( 020 using = 021 MetadataCascadePolicyParentTypeField.MetadataCascadePolicyParentTypeFieldSerializer.class) 022 protected EnumWrapper<MetadataCascadePolicyParentTypeField> type; 023 024 /** The ID of the folder the policy is applied to. */ 025 protected String id; 026 027 public MetadataCascadePolicyParentField() { 028 super(); 029 } 030 031 protected MetadataCascadePolicyParentField(Builder builder) { 032 super(); 033 this.type = builder.type; 034 this.id = builder.id; 035 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 036 } 037 038 public EnumWrapper<MetadataCascadePolicyParentTypeField> getType() { 039 return type; 040 } 041 042 public String getId() { 043 return id; 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 MetadataCascadePolicyParentField casted = (MetadataCascadePolicyParentField) o; 055 return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); 056 } 057 058 @Override 059 public int hashCode() { 060 return Objects.hash(type, id); 061 } 062 063 @Override 064 public String toString() { 065 return "MetadataCascadePolicyParentField{" 066 + "type='" 067 + type 068 + '\'' 069 + ", " 070 + "id='" 071 + id 072 + '\'' 073 + "}"; 074 } 075 076 public static class Builder extends NullableFieldTracker { 077 078 protected EnumWrapper<MetadataCascadePolicyParentTypeField> type; 079 080 protected String id; 081 082 public Builder type(MetadataCascadePolicyParentTypeField type) { 083 this.type = new EnumWrapper<MetadataCascadePolicyParentTypeField>(type); 084 return this; 085 } 086 087 public Builder type(EnumWrapper<MetadataCascadePolicyParentTypeField> type) { 088 this.type = type; 089 return this; 090 } 091 092 public Builder id(String id) { 093 this.id = id; 094 return this; 095 } 096 097 public MetadataCascadePolicyParentField build() { 098 return new MetadataCascadePolicyParentField(this); 099 } 100 } 101}