001package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation; 002 003import com.box.sdkgen.internal.Nullable; 004import com.box.sdkgen.internal.NullableFieldTracker; 005import com.box.sdkgen.internal.SerializableObject; 006import com.box.sdkgen.serialization.json.EnumWrapper; 007import com.fasterxml.jackson.annotation.JsonFilter; 008import com.fasterxml.jackson.annotation.JsonProperty; 009import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 010import com.fasterxml.jackson.databind.annotation.JsonSerialize; 011import java.util.Objects; 012 013/** 014 * Specifies the custom validation rules for a text field input by the signer. If set, this 015 * validation is mandatory. 016 */ 017@JsonFilter("nullablePropertyFilter") 018public class SignRequestSignerInputCustomValidation extends SerializableObject { 019 020 /** 021 * Defines the validation format for the text input as custom. A custom regular expression is used 022 * for validation. 023 */ 024 @JsonDeserialize( 025 using = 026 SignRequestSignerInputCustomValidationValidationTypeField 027 .SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer.class) 028 @JsonSerialize( 029 using = 030 SignRequestSignerInputCustomValidationValidationTypeField 031 .SignRequestSignerInputCustomValidationValidationTypeFieldSerializer.class) 032 @JsonProperty("validation_type") 033 protected EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> validationType; 034 035 /** Regular expression used for validation. */ 036 @JsonProperty("custom_regex") 037 @Nullable 038 protected String customRegex; 039 040 /** Error message shown if input fails custom regular expression validation. */ 041 @JsonProperty("custom_error_message") 042 @Nullable 043 protected String customErrorMessage; 044 045 public SignRequestSignerInputCustomValidation() { 046 super(); 047 this.validationType = 048 new EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>( 049 SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); 050 } 051 052 protected SignRequestSignerInputCustomValidation(Builder builder) { 053 super(); 054 this.validationType = builder.validationType; 055 this.customRegex = builder.customRegex; 056 this.customErrorMessage = builder.customErrorMessage; 057 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 058 } 059 060 public EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> 061 getValidationType() { 062 return validationType; 063 } 064 065 public String getCustomRegex() { 066 return customRegex; 067 } 068 069 public String getCustomErrorMessage() { 070 return customErrorMessage; 071 } 072 073 @Override 074 public boolean equals(Object o) { 075 if (this == o) { 076 return true; 077 } 078 if (o == null || getClass() != o.getClass()) { 079 return false; 080 } 081 SignRequestSignerInputCustomValidation casted = (SignRequestSignerInputCustomValidation) o; 082 return Objects.equals(validationType, casted.validationType) 083 && Objects.equals(customRegex, casted.customRegex) 084 && Objects.equals(customErrorMessage, casted.customErrorMessage); 085 } 086 087 @Override 088 public int hashCode() { 089 return Objects.hash(validationType, customRegex, customErrorMessage); 090 } 091 092 @Override 093 public String toString() { 094 return "SignRequestSignerInputCustomValidation{" 095 + "validationType='" 096 + validationType 097 + '\'' 098 + ", " 099 + "customRegex='" 100 + customRegex 101 + '\'' 102 + ", " 103 + "customErrorMessage='" 104 + customErrorMessage 105 + '\'' 106 + "}"; 107 } 108 109 public static class Builder extends NullableFieldTracker { 110 111 protected EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> validationType; 112 113 protected String customRegex; 114 115 protected String customErrorMessage; 116 117 public Builder() { 118 super(); 119 } 120 121 public Builder validationType( 122 SignRequestSignerInputCustomValidationValidationTypeField validationType) { 123 this.validationType = 124 new EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>( 125 validationType); 126 return this; 127 } 128 129 public Builder validationType( 130 EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> validationType) { 131 this.validationType = validationType; 132 return this; 133 } 134 135 public Builder customRegex(String customRegex) { 136 this.customRegex = customRegex; 137 this.markNullableFieldAsSet("custom_regex"); 138 return this; 139 } 140 141 public Builder customErrorMessage(String customErrorMessage) { 142 this.customErrorMessage = customErrorMessage; 143 this.markNullableFieldAsSet("custom_error_message"); 144 return this; 145 } 146 147 public SignRequestSignerInputCustomValidation build() { 148 if (this.validationType == null) { 149 this.validationType = 150 new EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>( 151 SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM); 152 } 153 return new SignRequestSignerInputCustomValidation(this); 154 } 155 } 156}