001package com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation; 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 date formatting rules used in Asia for a text field input by the signer. If set, 014 * this validation is mandatory. The date format follows `YYYY/MM/DD` pattern. 015 */ 016@JsonFilter("nullablePropertyFilter") 017public class SignRequestSignerInputDateAsiaValidation extends SerializableObject { 018 019 /** Validates that the text input uses the Asian date format `YYYY/MM/DD`. */ 020 @JsonDeserialize( 021 using = 022 SignRequestSignerInputDateAsiaValidationValidationTypeField 023 .SignRequestSignerInputDateAsiaValidationValidationTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = 026 SignRequestSignerInputDateAsiaValidationValidationTypeField 027 .SignRequestSignerInputDateAsiaValidationValidationTypeFieldSerializer.class) 028 @JsonProperty("validation_type") 029 protected EnumWrapper<SignRequestSignerInputDateAsiaValidationValidationTypeField> validationType; 030 031 public SignRequestSignerInputDateAsiaValidation() { 032 super(); 033 } 034 035 protected SignRequestSignerInputDateAsiaValidation(Builder builder) { 036 super(); 037 this.validationType = builder.validationType; 038 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 039 } 040 041 public EnumWrapper<SignRequestSignerInputDateAsiaValidationValidationTypeField> 042 getValidationType() { 043 return validationType; 044 } 045 046 @Override 047 public boolean equals(Object o) { 048 if (this == o) { 049 return true; 050 } 051 if (o == null || getClass() != o.getClass()) { 052 return false; 053 } 054 SignRequestSignerInputDateAsiaValidation casted = (SignRequestSignerInputDateAsiaValidation) o; 055 return Objects.equals(validationType, casted.validationType); 056 } 057 058 @Override 059 public int hashCode() { 060 return Objects.hash(validationType); 061 } 062 063 @Override 064 public String toString() { 065 return "SignRequestSignerInputDateAsiaValidation{" 066 + "validationType='" 067 + validationType 068 + '\'' 069 + "}"; 070 } 071 072 public static class Builder extends NullableFieldTracker { 073 074 protected EnumWrapper<SignRequestSignerInputDateAsiaValidationValidationTypeField> 075 validationType; 076 077 public Builder validationType( 078 SignRequestSignerInputDateAsiaValidationValidationTypeField validationType) { 079 this.validationType = 080 new EnumWrapper<SignRequestSignerInputDateAsiaValidationValidationTypeField>( 081 validationType); 082 return this; 083 } 084 085 public Builder validationType( 086 EnumWrapper<SignRequestSignerInputDateAsiaValidationValidationTypeField> validationType) { 087 this.validationType = validationType; 088 return this; 089 } 090 091 public SignRequestSignerInputDateAsiaValidation build() { 092 return new SignRequestSignerInputDateAsiaValidation(this); 093 } 094 } 095}