001package com.box.sdkgen.managers.classifications;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import java.util.Objects;
008
009@JsonFilter("nullablePropertyFilter")
010public class AddClassificationRequestBodyDataField extends SerializableObject {
011
012  /**
013   * The label of the classification as shown in the web and mobile interfaces. This is the only
014   * field required to add a classification.
015   */
016  protected final String key;
017
018  /** A static configuration for the classification. */
019  protected AddClassificationRequestBodyDataStaticConfigField staticConfig;
020
021  public AddClassificationRequestBodyDataField(@JsonProperty("key") String key) {
022    super();
023    this.key = key;
024  }
025
026  protected AddClassificationRequestBodyDataField(Builder builder) {
027    super();
028    this.key = builder.key;
029    this.staticConfig = builder.staticConfig;
030    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
031  }
032
033  public String getKey() {
034    return key;
035  }
036
037  public AddClassificationRequestBodyDataStaticConfigField getStaticConfig() {
038    return staticConfig;
039  }
040
041  @Override
042  public boolean equals(Object o) {
043    if (this == o) {
044      return true;
045    }
046    if (o == null || getClass() != o.getClass()) {
047      return false;
048    }
049    AddClassificationRequestBodyDataField casted = (AddClassificationRequestBodyDataField) o;
050    return Objects.equals(key, casted.key) && Objects.equals(staticConfig, casted.staticConfig);
051  }
052
053  @Override
054  public int hashCode() {
055    return Objects.hash(key, staticConfig);
056  }
057
058  @Override
059  public String toString() {
060    return "AddClassificationRequestBodyDataField{"
061        + "key='"
062        + key
063        + '\''
064        + ", "
065        + "staticConfig='"
066        + staticConfig
067        + '\''
068        + "}";
069  }
070
071  public static class Builder extends NullableFieldTracker {
072
073    protected final String key;
074
075    protected AddClassificationRequestBodyDataStaticConfigField staticConfig;
076
077    public Builder(String key) {
078      super();
079      this.key = key;
080    }
081
082    public Builder staticConfig(AddClassificationRequestBodyDataStaticConfigField staticConfig) {
083      this.staticConfig = staticConfig;
084      return this;
085    }
086
087    public AddClassificationRequestBodyDataField build() {
088      return new AddClassificationRequestBodyDataField(this);
089    }
090  }
091}