001package com.box.sdkgen.managers.metadatatemplates;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import java.util.List;
007import java.util.Objects;
008
009@JsonFilter("nullablePropertyFilter")
010public class CreateMetadataTemplateRequestBodyFieldsOptionsRulesField extends SerializableObject {
011
012  /** Whether to allow users to select multiple values. */
013  protected Boolean multiSelect;
014
015  /** An array of integers defining which levels of the taxonomy are selectable by users. */
016  protected List<Long> selectableLevels;
017
018  public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField() {
019    super();
020  }
021
022  protected CreateMetadataTemplateRequestBodyFieldsOptionsRulesField(Builder builder) {
023    super();
024    this.multiSelect = builder.multiSelect;
025    this.selectableLevels = builder.selectableLevels;
026    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
027  }
028
029  public Boolean getMultiSelect() {
030    return multiSelect;
031  }
032
033  public List<Long> getSelectableLevels() {
034    return selectableLevels;
035  }
036
037  @Override
038  public boolean equals(Object o) {
039    if (this == o) {
040      return true;
041    }
042    if (o == null || getClass() != o.getClass()) {
043      return false;
044    }
045    CreateMetadataTemplateRequestBodyFieldsOptionsRulesField casted =
046        (CreateMetadataTemplateRequestBodyFieldsOptionsRulesField) o;
047    return Objects.equals(multiSelect, casted.multiSelect)
048        && Objects.equals(selectableLevels, casted.selectableLevels);
049  }
050
051  @Override
052  public int hashCode() {
053    return Objects.hash(multiSelect, selectableLevels);
054  }
055
056  @Override
057  public String toString() {
058    return "CreateMetadataTemplateRequestBodyFieldsOptionsRulesField{"
059        + "multiSelect='"
060        + multiSelect
061        + '\''
062        + ", "
063        + "selectableLevels='"
064        + selectableLevels
065        + '\''
066        + "}";
067  }
068
069  public static class Builder extends NullableFieldTracker {
070
071    protected Boolean multiSelect;
072
073    protected List<Long> selectableLevels;
074
075    public Builder multiSelect(Boolean multiSelect) {
076      this.multiSelect = multiSelect;
077      return this;
078    }
079
080    public Builder selectableLevels(List<Long> selectableLevels) {
081      this.selectableLevels = selectableLevels;
082      return this;
083    }
084
085    public CreateMetadataTemplateRequestBodyFieldsOptionsRulesField build() {
086      return new CreateMetadataTemplateRequestBodyFieldsOptionsRulesField(this);
087    }
088  }
089}