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}