001package com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation; 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 Europe for a text field input by the signer. If set, 014 * this validation is mandatory. The date format follows `DD/MM/YYYY` pattern. 015 */ 016@JsonFilter("nullablePropertyFilter") 017public class SignRequestSignerInputDateEuValidation extends SerializableObject { 018 019 /** Validates that the text input uses the European date format `DD/MM/YYYY`. */ 020 @JsonDeserialize( 021 using = 022 SignRequestSignerInputDateEuValidationValidationTypeField 023 .SignRequestSignerInputDateEuValidationValidationTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = 026 SignRequestSignerInputDateEuValidationValidationTypeField 027 .SignRequestSignerInputDateEuValidationValidationTypeFieldSerializer.class) 028 @JsonProperty("validation_type") 029 protected EnumWrapper<SignRequestSignerInputDateEuValidationValidationTypeField> validationType; 030 031 public SignRequestSignerInputDateEuValidation() { 032 super(); 033 } 034 035 protected SignRequestSignerInputDateEuValidation(Builder builder) { 036 super(); 037 this.validationType = builder.validationType; 038 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 039 } 040 041 public EnumWrapper<SignRequestSignerInputDateEuValidationValidationTypeField> 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 SignRequestSignerInputDateEuValidation casted = (SignRequestSignerInputDateEuValidation) 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 "SignRequestSignerInputDateEuValidation{" 066 + "validationType='" 067 + validationType 068 + '\'' 069 + "}"; 070 } 071 072 public static class Builder extends NullableFieldTracker { 073 074 protected EnumWrapper<SignRequestSignerInputDateEuValidationValidationTypeField> validationType; 075 076 public Builder validationType( 077 SignRequestSignerInputDateEuValidationValidationTypeField validationType) { 078 this.validationType = 079 new EnumWrapper<SignRequestSignerInputDateEuValidationValidationTypeField>( 080 validationType); 081 return this; 082 } 083 084 public Builder validationType( 085 EnumWrapper<SignRequestSignerInputDateEuValidationValidationTypeField> validationType) { 086 this.validationType = validationType; 087 return this; 088 } 089 090 public SignRequestSignerInputDateEuValidation build() { 091 return new SignRequestSignerInputDateEuValidation(this); 092 } 093 } 094}