001package com.box.sdkgen.managers.classifications; 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@JsonFilter("nullablePropertyFilter") 013public class AddClassificationRequestBody extends SerializableObject { 014 015 /** The type of change to perform on the classification object. */ 016 @JsonDeserialize( 017 using = 018 AddClassificationRequestBodyOpField.AddClassificationRequestBodyOpFieldDeserializer.class) 019 @JsonSerialize( 020 using = 021 AddClassificationRequestBodyOpField.AddClassificationRequestBodyOpFieldSerializer.class) 022 protected EnumWrapper<AddClassificationRequestBodyOpField> op; 023 024 /** Defines classifications available in the enterprise. */ 025 @JsonDeserialize( 026 using = 027 AddClassificationRequestBodyFieldKeyField 028 .AddClassificationRequestBodyFieldKeyFieldDeserializer.class) 029 @JsonSerialize( 030 using = 031 AddClassificationRequestBodyFieldKeyField 032 .AddClassificationRequestBodyFieldKeyFieldSerializer.class) 033 protected EnumWrapper<AddClassificationRequestBodyFieldKeyField> fieldKey; 034 035 /** The details of the classification to add. */ 036 protected final AddClassificationRequestBodyDataField data; 037 038 public AddClassificationRequestBody( 039 @JsonProperty("data") AddClassificationRequestBodyDataField data) { 040 super(); 041 this.data = data; 042 this.op = 043 new EnumWrapper<AddClassificationRequestBodyOpField>( 044 AddClassificationRequestBodyOpField.ADDENUMOPTION); 045 this.fieldKey = 046 new EnumWrapper<AddClassificationRequestBodyFieldKeyField>( 047 AddClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); 048 } 049 050 protected AddClassificationRequestBody(Builder builder) { 051 super(); 052 this.op = builder.op; 053 this.fieldKey = builder.fieldKey; 054 this.data = builder.data; 055 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 056 } 057 058 public EnumWrapper<AddClassificationRequestBodyOpField> getOp() { 059 return op; 060 } 061 062 public EnumWrapper<AddClassificationRequestBodyFieldKeyField> getFieldKey() { 063 return fieldKey; 064 } 065 066 public AddClassificationRequestBodyDataField getData() { 067 return data; 068 } 069 070 @Override 071 public boolean equals(Object o) { 072 if (this == o) { 073 return true; 074 } 075 if (o == null || getClass() != o.getClass()) { 076 return false; 077 } 078 AddClassificationRequestBody casted = (AddClassificationRequestBody) o; 079 return Objects.equals(op, casted.op) 080 && Objects.equals(fieldKey, casted.fieldKey) 081 && Objects.equals(data, casted.data); 082 } 083 084 @Override 085 public int hashCode() { 086 return Objects.hash(op, fieldKey, data); 087 } 088 089 @Override 090 public String toString() { 091 return "AddClassificationRequestBody{" 092 + "op='" 093 + op 094 + '\'' 095 + ", " 096 + "fieldKey='" 097 + fieldKey 098 + '\'' 099 + ", " 100 + "data='" 101 + data 102 + '\'' 103 + "}"; 104 } 105 106 public static class Builder extends NullableFieldTracker { 107 108 protected EnumWrapper<AddClassificationRequestBodyOpField> op; 109 110 protected EnumWrapper<AddClassificationRequestBodyFieldKeyField> fieldKey; 111 112 protected final AddClassificationRequestBodyDataField data; 113 114 public Builder(AddClassificationRequestBodyDataField data) { 115 super(); 116 this.data = data; 117 } 118 119 public Builder op(AddClassificationRequestBodyOpField op) { 120 this.op = new EnumWrapper<AddClassificationRequestBodyOpField>(op); 121 return this; 122 } 123 124 public Builder op(EnumWrapper<AddClassificationRequestBodyOpField> op) { 125 this.op = op; 126 return this; 127 } 128 129 public Builder fieldKey(AddClassificationRequestBodyFieldKeyField fieldKey) { 130 this.fieldKey = new EnumWrapper<AddClassificationRequestBodyFieldKeyField>(fieldKey); 131 return this; 132 } 133 134 public Builder fieldKey(EnumWrapper<AddClassificationRequestBodyFieldKeyField> fieldKey) { 135 this.fieldKey = fieldKey; 136 return this; 137 } 138 139 public AddClassificationRequestBody build() { 140 if (this.op == null) { 141 this.op = 142 new EnumWrapper<AddClassificationRequestBodyOpField>( 143 AddClassificationRequestBodyOpField.ADDENUMOPTION); 144 } 145 if (this.fieldKey == null) { 146 this.fieldKey = 147 new EnumWrapper<AddClassificationRequestBodyFieldKeyField>( 148 AddClassificationRequestBodyFieldKeyField.BOX__SECURITY__CLASSIFICATION__KEY); 149 } 150 return new AddClassificationRequestBody(this); 151 } 152 } 153}