001package com.box.sdkgen.schemas.signrequestsignerinputzip4validation; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.serialization.json.EnumWrapper; 006import com.fasterxml.jackson.annotation.JsonFilter; 007import com.fasterxml.jackson.annotation.JsonProperty; 008import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 009import com.fasterxml.jackson.databind.annotation.JsonSerialize; 010import java.util.Objects; 011 012/** 013 * Specifies the validation rules for a text field input by the signer. If set, this validation is 014 * mandatory. 015 */ 016@JsonFilter("nullablePropertyFilter") 017public class SignRequestSignerInputZip4Validation extends SerializableObject { 018 019 /** Validates that the text input is a ZIP+4 code. */ 020 @JsonDeserialize( 021 using = 022 SignRequestSignerInputZip4ValidationValidationTypeField 023 .SignRequestSignerInputZip4ValidationValidationTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = 026 SignRequestSignerInputZip4ValidationValidationTypeField 027 .SignRequestSignerInputZip4ValidationValidationTypeFieldSerializer.class) 028 @JsonProperty("validation_type") 029 protected EnumWrapper<SignRequestSignerInputZip4ValidationValidationTypeField> validationType; 030 031 public SignRequestSignerInputZip4Validation() { 032 super(); 033 this.validationType = 034 new EnumWrapper<SignRequestSignerInputZip4ValidationValidationTypeField>( 035 SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); 036 } 037 038 protected SignRequestSignerInputZip4Validation(Builder builder) { 039 super(); 040 this.validationType = builder.validationType; 041 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 042 } 043 044 public EnumWrapper<SignRequestSignerInputZip4ValidationValidationTypeField> getValidationType() { 045 return validationType; 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 SignRequestSignerInputZip4Validation casted = (SignRequestSignerInputZip4Validation) o; 057 return Objects.equals(validationType, casted.validationType); 058 } 059 060 @Override 061 public int hashCode() { 062 return Objects.hash(validationType); 063 } 064 065 @Override 066 public String toString() { 067 return "SignRequestSignerInputZip4Validation{" 068 + "validationType='" 069 + validationType 070 + '\'' 071 + "}"; 072 } 073 074 public static class Builder extends NullableFieldTracker { 075 076 protected EnumWrapper<SignRequestSignerInputZip4ValidationValidationTypeField> validationType; 077 078 public Builder() { 079 super(); 080 } 081 082 public Builder validationType( 083 SignRequestSignerInputZip4ValidationValidationTypeField validationType) { 084 this.validationType = 085 new EnumWrapper<SignRequestSignerInputZip4ValidationValidationTypeField>(validationType); 086 return this; 087 } 088 089 public Builder validationType( 090 EnumWrapper<SignRequestSignerInputZip4ValidationValidationTypeField> validationType) { 091 this.validationType = validationType; 092 return this; 093 } 094 095 public SignRequestSignerInputZip4Validation build() { 096 if (this.validationType == null) { 097 this.validationType = 098 new EnumWrapper<SignRequestSignerInputZip4ValidationValidationTypeField>( 099 SignRequestSignerInputZip4ValidationValidationTypeField.ZIP_4); 100 } 101 return new SignRequestSignerInputZip4Validation(this); 102 } 103 } 104}