001package com.box.sdkgen.schemas.classificationtemplate;
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 ClassificationTemplateFieldsOptionsField extends SerializableObject {
011
012  /** The unique ID of this classification. */
013  protected final String id;
014
015  /** The display name and key for this classification. */
016  protected final String key;
017
018  /** Additional information about the classification. */
019  protected ClassificationTemplateFieldsOptionsStaticConfigField staticConfig;
020
021  public ClassificationTemplateFieldsOptionsField(
022      @JsonProperty("id") String id, @JsonProperty("key") String key) {
023    super();
024    this.id = id;
025    this.key = key;
026  }
027
028  protected ClassificationTemplateFieldsOptionsField(Builder builder) {
029    super();
030    this.id = builder.id;
031    this.key = builder.key;
032    this.staticConfig = builder.staticConfig;
033    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
034  }
035
036  public String getId() {
037    return id;
038  }
039
040  public String getKey() {
041    return key;
042  }
043
044  public ClassificationTemplateFieldsOptionsStaticConfigField getStaticConfig() {
045    return staticConfig;
046  }
047
048  @Override
049  public boolean equals(Object o) {
050    if (this == o) {
051      return true;
052    }
053    if (o == null || getClass() != o.getClass()) {
054      return false;
055    }
056    ClassificationTemplateFieldsOptionsField casted = (ClassificationTemplateFieldsOptionsField) o;
057    return Objects.equals(id, casted.id)
058        && Objects.equals(key, casted.key)
059        && Objects.equals(staticConfig, casted.staticConfig);
060  }
061
062  @Override
063  public int hashCode() {
064    return Objects.hash(id, key, staticConfig);
065  }
066
067  @Override
068  public String toString() {
069    return "ClassificationTemplateFieldsOptionsField{"
070        + "id='"
071        + id
072        + '\''
073        + ", "
074        + "key='"
075        + key
076        + '\''
077        + ", "
078        + "staticConfig='"
079        + staticConfig
080        + '\''
081        + "}";
082  }
083
084  public static class Builder extends NullableFieldTracker {
085
086    protected final String id;
087
088    protected final String key;
089
090    protected ClassificationTemplateFieldsOptionsStaticConfigField staticConfig;
091
092    public Builder(String id, String key) {
093      super();
094      this.id = id;
095      this.key = key;
096    }
097
098    public Builder staticConfig(ClassificationTemplateFieldsOptionsStaticConfigField staticConfig) {
099      this.staticConfig = staticConfig;
100      return this;
101    }
102
103    public ClassificationTemplateFieldsOptionsField build() {
104      return new ClassificationTemplateFieldsOptionsField(this);
105    }
106  }
107}