001package com.box.sdkgen.schemas.signrequestsignerinput; 002 003import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag; 004import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation; 005import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation; 006import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation; 007import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation; 008import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation; 009import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation; 010import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation; 011import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation; 012import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation; 013import com.box.sdkgen.schemas.signrequestsignerinputvalidation.SignRequestSignerInputValidation; 014import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation; 015import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation; 016import com.box.sdkgen.serialization.json.EnumWrapper; 017import com.fasterxml.jackson.annotation.JsonFilter; 018import com.fasterxml.jackson.annotation.JsonProperty; 019import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 020import com.fasterxml.jackson.databind.annotation.JsonSerialize; 021import java.time.OffsetDateTime; 022import java.util.Objects; 023 024/** Input created by a Signer on a Sign Request. */ 025@JsonFilter("nullablePropertyFilter") 026public class SignRequestSignerInput extends SignRequestPrefillTag { 027 028 /** Type of input. */ 029 @JsonDeserialize( 030 using = SignRequestSignerInputTypeField.SignRequestSignerInputTypeFieldDeserializer.class) 031 @JsonSerialize( 032 using = SignRequestSignerInputTypeField.SignRequestSignerInputTypeFieldSerializer.class) 033 protected EnumWrapper<SignRequestSignerInputTypeField> type; 034 035 /** Content type of input. */ 036 @JsonDeserialize( 037 using = 038 SignRequestSignerInputContentTypeField.SignRequestSignerInputContentTypeFieldDeserializer 039 .class) 040 @JsonSerialize( 041 using = 042 SignRequestSignerInputContentTypeField.SignRequestSignerInputContentTypeFieldSerializer 043 .class) 044 @JsonProperty("content_type") 045 protected EnumWrapper<SignRequestSignerInputContentTypeField> contentType; 046 047 /** Index of page that the input is on. */ 048 @JsonProperty("page_index") 049 protected final long pageIndex; 050 051 /** Indicates whether this input is read-only (cannot be modified by signers). */ 052 @JsonProperty("read_only") 053 protected Boolean readOnly; 054 055 /** 056 * Specifies the formatting rules that signers must follow for text field inputs. If set, this 057 * validation is mandatory. 058 */ 059 protected SignRequestSignerInputValidation validation; 060 061 public SignRequestSignerInput(@JsonProperty("page_index") long pageIndex) { 062 super(); 063 this.pageIndex = pageIndex; 064 } 065 066 protected SignRequestSignerInput(Builder builder) { 067 super(builder); 068 this.type = builder.type; 069 this.contentType = builder.contentType; 070 this.pageIndex = builder.pageIndex; 071 this.readOnly = builder.readOnly; 072 this.validation = builder.validation; 073 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 074 } 075 076 public EnumWrapper<SignRequestSignerInputTypeField> getType() { 077 return type; 078 } 079 080 public EnumWrapper<SignRequestSignerInputContentTypeField> getContentType() { 081 return contentType; 082 } 083 084 public long getPageIndex() { 085 return pageIndex; 086 } 087 088 public Boolean getReadOnly() { 089 return readOnly; 090 } 091 092 public SignRequestSignerInputValidation getValidation() { 093 return validation; 094 } 095 096 @Override 097 public boolean equals(Object o) { 098 if (this == o) { 099 return true; 100 } 101 if (o == null || getClass() != o.getClass()) { 102 return false; 103 } 104 SignRequestSignerInput casted = (SignRequestSignerInput) o; 105 return Objects.equals(documentTagId, casted.documentTagId) 106 && Objects.equals(textValue, casted.textValue) 107 && Objects.equals(checkboxValue, casted.checkboxValue) 108 && Objects.equals(dateValue, casted.dateValue) 109 && Objects.equals(type, casted.type) 110 && Objects.equals(contentType, casted.contentType) 111 && Objects.equals(pageIndex, casted.pageIndex) 112 && Objects.equals(readOnly, casted.readOnly) 113 && Objects.equals(validation, casted.validation); 114 } 115 116 @Override 117 public int hashCode() { 118 return Objects.hash( 119 documentTagId, 120 textValue, 121 checkboxValue, 122 dateValue, 123 type, 124 contentType, 125 pageIndex, 126 readOnly, 127 validation); 128 } 129 130 @Override 131 public String toString() { 132 return "SignRequestSignerInput{" 133 + "documentTagId='" 134 + documentTagId 135 + '\'' 136 + ", " 137 + "textValue='" 138 + textValue 139 + '\'' 140 + ", " 141 + "checkboxValue='" 142 + checkboxValue 143 + '\'' 144 + ", " 145 + "dateValue='" 146 + dateValue 147 + '\'' 148 + ", " 149 + "type='" 150 + type 151 + '\'' 152 + ", " 153 + "contentType='" 154 + contentType 155 + '\'' 156 + ", " 157 + "pageIndex='" 158 + pageIndex 159 + '\'' 160 + ", " 161 + "readOnly='" 162 + readOnly 163 + '\'' 164 + ", " 165 + "validation='" 166 + validation 167 + '\'' 168 + "}"; 169 } 170 171 public static class Builder extends SignRequestPrefillTag.Builder { 172 173 protected EnumWrapper<SignRequestSignerInputTypeField> type; 174 175 protected EnumWrapper<SignRequestSignerInputContentTypeField> contentType; 176 177 protected final long pageIndex; 178 179 protected Boolean readOnly; 180 181 protected SignRequestSignerInputValidation validation; 182 183 public Builder(long pageIndex) { 184 super(); 185 this.pageIndex = pageIndex; 186 } 187 188 public Builder type(SignRequestSignerInputTypeField type) { 189 this.type = new EnumWrapper<SignRequestSignerInputTypeField>(type); 190 return this; 191 } 192 193 public Builder type(EnumWrapper<SignRequestSignerInputTypeField> type) { 194 this.type = type; 195 return this; 196 } 197 198 public Builder contentType(SignRequestSignerInputContentTypeField contentType) { 199 this.contentType = new EnumWrapper<SignRequestSignerInputContentTypeField>(contentType); 200 return this; 201 } 202 203 public Builder contentType(EnumWrapper<SignRequestSignerInputContentTypeField> contentType) { 204 this.contentType = contentType; 205 return this; 206 } 207 208 public Builder readOnly(Boolean readOnly) { 209 this.readOnly = readOnly; 210 return this; 211 } 212 213 public Builder validation(SignRequestSignerInputEmailValidation validation) { 214 this.validation = new SignRequestSignerInputValidation(validation); 215 return this; 216 } 217 218 public Builder validation(SignRequestSignerInputCustomValidation validation) { 219 this.validation = new SignRequestSignerInputValidation(validation); 220 return this; 221 } 222 223 public Builder validation(SignRequestSignerInputZipValidation validation) { 224 this.validation = new SignRequestSignerInputValidation(validation); 225 return this; 226 } 227 228 public Builder validation(SignRequestSignerInputZip4Validation validation) { 229 this.validation = new SignRequestSignerInputValidation(validation); 230 return this; 231 } 232 233 public Builder validation(SignRequestSignerInputSsnValidation validation) { 234 this.validation = new SignRequestSignerInputValidation(validation); 235 return this; 236 } 237 238 public Builder validation(SignRequestSignerInputNumberWithPeriodValidation validation) { 239 this.validation = new SignRequestSignerInputValidation(validation); 240 return this; 241 } 242 243 public Builder validation(SignRequestSignerInputNumberWithCommaValidation validation) { 244 this.validation = new SignRequestSignerInputValidation(validation); 245 return this; 246 } 247 248 public Builder validation(SignRequestSignerInputDateIsoValidation validation) { 249 this.validation = new SignRequestSignerInputValidation(validation); 250 return this; 251 } 252 253 public Builder validation(SignRequestSignerInputDateUsValidation validation) { 254 this.validation = new SignRequestSignerInputValidation(validation); 255 return this; 256 } 257 258 public Builder validation(SignRequestSignerInputDateEuValidation validation) { 259 this.validation = new SignRequestSignerInputValidation(validation); 260 return this; 261 } 262 263 public Builder validation(SignRequestSignerInputDateAsiaValidation validation) { 264 this.validation = new SignRequestSignerInputValidation(validation); 265 return this; 266 } 267 268 public Builder validation(SignRequestSignerInputValidation validation) { 269 this.validation = validation; 270 return this; 271 } 272 273 @Override 274 public Builder documentTagId(String documentTagId) { 275 this.documentTagId = documentTagId; 276 this.markNullableFieldAsSet("document_tag_id"); 277 return this; 278 } 279 280 @Override 281 public Builder textValue(String textValue) { 282 this.textValue = textValue; 283 this.markNullableFieldAsSet("text_value"); 284 return this; 285 } 286 287 @Override 288 public Builder checkboxValue(Boolean checkboxValue) { 289 this.checkboxValue = checkboxValue; 290 this.markNullableFieldAsSet("checkbox_value"); 291 return this; 292 } 293 294 @Override 295 public Builder dateValue(OffsetDateTime dateValue) { 296 this.dateValue = dateValue; 297 this.markNullableFieldAsSet("date_value"); 298 return this; 299 } 300 301 public SignRequestSignerInput build() { 302 return new SignRequestSignerInput(this); 303 } 304 } 305}