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