001package com.box.sdkgen.schemas.metadatatemplate; 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 MetadataTemplateFieldsOptionsRulesField 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 MetadataTemplateFieldsOptionsRulesField() { 019 super(); 020 } 021 022 protected MetadataTemplateFieldsOptionsRulesField(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 MetadataTemplateFieldsOptionsRulesField casted = (MetadataTemplateFieldsOptionsRulesField) o; 046 return Objects.equals(multiSelect, casted.multiSelect) 047 && Objects.equals(selectableLevels, casted.selectableLevels); 048 } 049 050 @Override 051 public int hashCode() { 052 return Objects.hash(multiSelect, selectableLevels); 053 } 054 055 @Override 056 public String toString() { 057 return "MetadataTemplateFieldsOptionsRulesField{" 058 + "multiSelect='" 059 + multiSelect 060 + '\'' 061 + ", " 062 + "selectableLevels='" 063 + selectableLevels 064 + '\'' 065 + "}"; 066 } 067 068 public static class Builder extends NullableFieldTracker { 069 070 protected Boolean multiSelect; 071 072 protected List<Long> selectableLevels; 073 074 public Builder multiSelect(Boolean multiSelect) { 075 this.multiSelect = multiSelect; 076 return this; 077 } 078 079 public Builder selectableLevels(List<Long> selectableLevels) { 080 this.selectableLevels = selectableLevels; 081 return this; 082 } 083 084 public MetadataTemplateFieldsOptionsRulesField build() { 085 return new MetadataTemplateFieldsOptionsRulesField(this); 086 } 087 } 088}