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