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 CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField
011    extends SerializableObject {
012
013  /** A longer description of the classification. */
014  protected String classificationDefinition;
015
016  /**
017   * An identifier used to assign a color to a classification label.
018   *
019   * <p>Mapping between a `colorID` and a color may change without notice. Currently, the color
020   * mappings are as follows.
021   *
022   * <p>* `0`: Yellow. * `1`: Orange. * `2`: Watermelon red. * `3`: Purple rain. * `4`: Light blue.
023   * * `5`: Dark blue. * `6`: Light green. * `7`: Gray.
024   */
025  @JsonProperty("colorID")
026  protected Long colorId;
027
028  public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField() {
029    super();
030  }
031
032  protected CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField(
033      Builder builder) {
034    super();
035    this.classificationDefinition = builder.classificationDefinition;
036    this.colorId = builder.colorId;
037    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
038  }
039
040  public String getClassificationDefinition() {
041    return classificationDefinition;
042  }
043
044  public Long getColorId() {
045    return colorId;
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    CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField casted =
057        (CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField) o;
058    return Objects.equals(classificationDefinition, casted.classificationDefinition)
059        && Objects.equals(colorId, casted.colorId);
060  }
061
062  @Override
063  public int hashCode() {
064    return Objects.hash(classificationDefinition, colorId);
065  }
066
067  @Override
068  public String toString() {
069    return "CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField{"
070        + "classificationDefinition='"
071        + classificationDefinition
072        + '\''
073        + ", "
074        + "colorId='"
075        + colorId
076        + '\''
077        + "}";
078  }
079
080  public static class Builder extends NullableFieldTracker {
081
082    protected String classificationDefinition;
083
084    protected Long colorId;
085
086    public Builder classificationDefinition(String classificationDefinition) {
087      this.classificationDefinition = classificationDefinition;
088      return this;
089    }
090
091    public Builder colorId(Long colorId) {
092      this.colorId = colorId;
093      return this;
094    }
095
096    public CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField
097        build() {
098      return new CreateClassificationTemplateRequestBodyFieldsOptionsStaticConfigClassificationField(
099          this);
100    }
101  }
102}