001package com.box.sdkgen.schemas.signrequestsignerinputemailvalidation; 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 formatting rules that signers must follow for text field inputs. If set, this 014 * validation is mandatory. 015 */ 016@JsonFilter("nullablePropertyFilter") 017public class SignRequestSignerInputEmailValidation extends SerializableObject { 018 019 /** Validates that the text input is an email address. */ 020 @JsonDeserialize( 021 using = 022 SignRequestSignerInputEmailValidationValidationTypeField 023 .SignRequestSignerInputEmailValidationValidationTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = 026 SignRequestSignerInputEmailValidationValidationTypeField 027 .SignRequestSignerInputEmailValidationValidationTypeFieldSerializer.class) 028 @JsonProperty("validation_type") 029 protected EnumWrapper<SignRequestSignerInputEmailValidationValidationTypeField> validationType; 030 031 public SignRequestSignerInputEmailValidation() { 032 super(); 033 this.validationType = 034 new EnumWrapper<SignRequestSignerInputEmailValidationValidationTypeField>( 035 SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); 036 } 037 038 protected SignRequestSignerInputEmailValidation(Builder builder) { 039 super(); 040 this.validationType = builder.validationType; 041 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 042 } 043 044 public EnumWrapper<SignRequestSignerInputEmailValidationValidationTypeField> 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 SignRequestSignerInputEmailValidation casted = (SignRequestSignerInputEmailValidation) 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 "SignRequestSignerInputEmailValidation{" 068 + "validationType='" 069 + validationType 070 + '\'' 071 + "}"; 072 } 073 074 public static class Builder extends NullableFieldTracker { 075 076 protected EnumWrapper<SignRequestSignerInputEmailValidationValidationTypeField> validationType; 077 078 public Builder() { 079 super(); 080 } 081 082 public Builder validationType( 083 SignRequestSignerInputEmailValidationValidationTypeField validationType) { 084 this.validationType = 085 new EnumWrapper<SignRequestSignerInputEmailValidationValidationTypeField>(validationType); 086 return this; 087 } 088 089 public Builder validationType( 090 EnumWrapper<SignRequestSignerInputEmailValidationValidationTypeField> validationType) { 091 this.validationType = validationType; 092 return this; 093 } 094 095 public SignRequestSignerInputEmailValidation build() { 096 if (this.validationType == null) { 097 this.validationType = 098 new EnumWrapper<SignRequestSignerInputEmailValidationValidationTypeField>( 099 SignRequestSignerInputEmailValidationValidationTypeField.EMAIL); 100 } 101 return new SignRequestSignerInputEmailValidation(this); 102 } 103 } 104}