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 CreateClassificationTemplateRequestBodyFieldsOptionsField extends SerializableObject {
011
012  /** The display name and key this classification. This will be show in the Box UI. */
013  protected final String key;
014
015  /** Additional information about the classification. */
016  protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField staticConfig;
017
018  public CreateClassificationTemplateRequestBodyFieldsOptionsField(
019      @JsonProperty("key") String key) {
020    super();
021    this.key = key;
022  }
023
024  protected CreateClassificationTemplateRequestBodyFieldsOptionsField(Builder builder) {
025    super();
026    this.key = builder.key;
027    this.staticConfig = builder.staticConfig;
028    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
029  }
030
031  public String getKey() {
032    return key;
033  }
034
035  public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField getStaticConfig() {
036    return staticConfig;
037  }
038
039  @Override
040  public boolean equals(Object o) {
041    if (this == o) {
042      return true;
043    }
044    if (o == null || getClass() != o.getClass()) {
045      return false;
046    }
047    CreateClassificationTemplateRequestBodyFieldsOptionsField casted =
048        (CreateClassificationTemplateRequestBodyFieldsOptionsField) o;
049    return Objects.equals(key, casted.key) && Objects.equals(staticConfig, casted.staticConfig);
050  }
051
052  @Override
053  public int hashCode() {
054    return Objects.hash(key, staticConfig);
055  }
056
057  @Override
058  public String toString() {
059    return "CreateClassificationTemplateRequestBodyFieldsOptionsField{"
060        + "key='"
061        + key
062        + '\''
063        + ", "
064        + "staticConfig='"
065        + staticConfig
066        + '\''
067        + "}";
068  }
069
070  public static class Builder extends NullableFieldTracker {
071
072    protected final String key;
073
074    protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField staticConfig;
075
076    public Builder(String key) {
077      super();
078      this.key = key;
079    }
080
081    public Builder staticConfig(
082        CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigField staticConfig) {
083      this.staticConfig = staticConfig;
084      return this;
085    }
086
087    public CreateClassificationTemplateRequestBodyFieldsOptionsField build() {
088      return new CreateClassificationTemplateRequestBodyFieldsOptionsField(this);
089    }
090  }
091}