001package com.box.sdkgen.schemas.signrequestsignerinputvalidation;
002
003import com.box.sdkgen.internal.OneOfEleven;
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.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation;
014import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation;
015import com.box.sdkgen.serialization.json.EnumWrapper;
016import com.box.sdkgen.serialization.json.JsonManager;
017import com.fasterxml.jackson.core.JsonParser;
018import com.fasterxml.jackson.databind.DeserializationContext;
019import com.fasterxml.jackson.databind.JsonDeserializer;
020import com.fasterxml.jackson.databind.JsonMappingException;
021import com.fasterxml.jackson.databind.JsonNode;
022import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
023import com.fasterxml.jackson.databind.annotation.JsonSerialize;
024import java.io.IOException;
025
026@JsonDeserialize(
027    using = SignRequestSignerInputValidation.SignRequestSignerInputValidationDeserializer.class)
028@JsonSerialize(using = OneOfEleven.OneOfElevenSerializer.class)
029public class SignRequestSignerInputValidation
030    extends OneOfEleven<
031        SignRequestSignerInputEmailValidation,
032        SignRequestSignerInputCustomValidation,
033        SignRequestSignerInputZipValidation,
034        SignRequestSignerInputZip4Validation,
035        SignRequestSignerInputSsnValidation,
036        SignRequestSignerInputNumberWithPeriodValidation,
037        SignRequestSignerInputNumberWithCommaValidation,
038        SignRequestSignerInputDateIsoValidation,
039        SignRequestSignerInputDateUsValidation,
040        SignRequestSignerInputDateEuValidation,
041        SignRequestSignerInputDateAsiaValidation> {
042
043  protected final String validationType;
044
045  public SignRequestSignerInputValidation(
046      SignRequestSignerInputEmailValidation signRequestSignerInputEmailValidation) {
047    super(
048        signRequestSignerInputEmailValidation,
049        null,
050        null,
051        null,
052        null,
053        null,
054        null,
055        null,
056        null,
057        null,
058        null);
059    this.validationType =
060        EnumWrapper.convertToString(signRequestSignerInputEmailValidation.getValidationType());
061  }
062
063  public SignRequestSignerInputValidation(
064      SignRequestSignerInputCustomValidation signRequestSignerInputCustomValidation) {
065    super(
066        null,
067        signRequestSignerInputCustomValidation,
068        null,
069        null,
070        null,
071        null,
072        null,
073        null,
074        null,
075        null,
076        null);
077    this.validationType =
078        EnumWrapper.convertToString(signRequestSignerInputCustomValidation.getValidationType());
079  }
080
081  public SignRequestSignerInputValidation(
082      SignRequestSignerInputZipValidation signRequestSignerInputZipValidation) {
083    super(
084        null,
085        null,
086        signRequestSignerInputZipValidation,
087        null,
088        null,
089        null,
090        null,
091        null,
092        null,
093        null,
094        null);
095    this.validationType =
096        EnumWrapper.convertToString(signRequestSignerInputZipValidation.getValidationType());
097  }
098
099  public SignRequestSignerInputValidation(
100      SignRequestSignerInputZip4Validation signRequestSignerInputZip4Validation) {
101    super(
102        null,
103        null,
104        null,
105        signRequestSignerInputZip4Validation,
106        null,
107        null,
108        null,
109        null,
110        null,
111        null,
112        null);
113    this.validationType =
114        EnumWrapper.convertToString(signRequestSignerInputZip4Validation.getValidationType());
115  }
116
117  public SignRequestSignerInputValidation(
118      SignRequestSignerInputSsnValidation signRequestSignerInputSsnValidation) {
119    super(
120        null,
121        null,
122        null,
123        null,
124        signRequestSignerInputSsnValidation,
125        null,
126        null,
127        null,
128        null,
129        null,
130        null);
131    this.validationType =
132        EnumWrapper.convertToString(signRequestSignerInputSsnValidation.getValidationType());
133  }
134
135  public SignRequestSignerInputValidation(
136      SignRequestSignerInputNumberWithPeriodValidation
137          signRequestSignerInputNumberWithPeriodValidation) {
138    super(
139        null,
140        null,
141        null,
142        null,
143        null,
144        signRequestSignerInputNumberWithPeriodValidation,
145        null,
146        null,
147        null,
148        null,
149        null);
150    this.validationType =
151        EnumWrapper.convertToString(
152            signRequestSignerInputNumberWithPeriodValidation.getValidationType());
153  }
154
155  public SignRequestSignerInputValidation(
156      SignRequestSignerInputNumberWithCommaValidation
157          signRequestSignerInputNumberWithCommaValidation) {
158    super(
159        null,
160        null,
161        null,
162        null,
163        null,
164        null,
165        signRequestSignerInputNumberWithCommaValidation,
166        null,
167        null,
168        null,
169        null);
170    this.validationType =
171        EnumWrapper.convertToString(
172            signRequestSignerInputNumberWithCommaValidation.getValidationType());
173  }
174
175  public SignRequestSignerInputValidation(
176      SignRequestSignerInputDateIsoValidation signRequestSignerInputDateIsoValidation) {
177    super(
178        null,
179        null,
180        null,
181        null,
182        null,
183        null,
184        null,
185        signRequestSignerInputDateIsoValidation,
186        null,
187        null,
188        null);
189    this.validationType =
190        EnumWrapper.convertToString(signRequestSignerInputDateIsoValidation.getValidationType());
191  }
192
193  public SignRequestSignerInputValidation(
194      SignRequestSignerInputDateUsValidation signRequestSignerInputDateUsValidation) {
195    super(
196        null,
197        null,
198        null,
199        null,
200        null,
201        null,
202        null,
203        null,
204        signRequestSignerInputDateUsValidation,
205        null,
206        null);
207    this.validationType =
208        EnumWrapper.convertToString(signRequestSignerInputDateUsValidation.getValidationType());
209  }
210
211  public SignRequestSignerInputValidation(
212      SignRequestSignerInputDateEuValidation signRequestSignerInputDateEuValidation) {
213    super(
214        null,
215        null,
216        null,
217        null,
218        null,
219        null,
220        null,
221        null,
222        null,
223        signRequestSignerInputDateEuValidation,
224        null);
225    this.validationType =
226        EnumWrapper.convertToString(signRequestSignerInputDateEuValidation.getValidationType());
227  }
228
229  public SignRequestSignerInputValidation(
230      SignRequestSignerInputDateAsiaValidation signRequestSignerInputDateAsiaValidation) {
231    super(
232        null,
233        null,
234        null,
235        null,
236        null,
237        null,
238        null,
239        null,
240        null,
241        null,
242        signRequestSignerInputDateAsiaValidation);
243    this.validationType =
244        EnumWrapper.convertToString(signRequestSignerInputDateAsiaValidation.getValidationType());
245  }
246
247  public boolean isSignRequestSignerInputEmailValidation() {
248    return value0 != null;
249  }
250
251  public SignRequestSignerInputEmailValidation getSignRequestSignerInputEmailValidation() {
252    return value0;
253  }
254
255  public boolean isSignRequestSignerInputCustomValidation() {
256    return value1 != null;
257  }
258
259  public SignRequestSignerInputCustomValidation getSignRequestSignerInputCustomValidation() {
260    return value1;
261  }
262
263  public boolean isSignRequestSignerInputZipValidation() {
264    return value2 != null;
265  }
266
267  public SignRequestSignerInputZipValidation getSignRequestSignerInputZipValidation() {
268    return value2;
269  }
270
271  public boolean isSignRequestSignerInputZip4Validation() {
272    return value3 != null;
273  }
274
275  public SignRequestSignerInputZip4Validation getSignRequestSignerInputZip4Validation() {
276    return value3;
277  }
278
279  public boolean isSignRequestSignerInputSsnValidation() {
280    return value4 != null;
281  }
282
283  public SignRequestSignerInputSsnValidation getSignRequestSignerInputSsnValidation() {
284    return value4;
285  }
286
287  public boolean isSignRequestSignerInputNumberWithPeriodValidation() {
288    return value5 != null;
289  }
290
291  public SignRequestSignerInputNumberWithPeriodValidation
292      getSignRequestSignerInputNumberWithPeriodValidation() {
293    return value5;
294  }
295
296  public boolean isSignRequestSignerInputNumberWithCommaValidation() {
297    return value6 != null;
298  }
299
300  public SignRequestSignerInputNumberWithCommaValidation
301      getSignRequestSignerInputNumberWithCommaValidation() {
302    return value6;
303  }
304
305  public boolean isSignRequestSignerInputDateIsoValidation() {
306    return value7 != null;
307  }
308
309  public SignRequestSignerInputDateIsoValidation getSignRequestSignerInputDateIsoValidation() {
310    return value7;
311  }
312
313  public boolean isSignRequestSignerInputDateUsValidation() {
314    return value8 != null;
315  }
316
317  public SignRequestSignerInputDateUsValidation getSignRequestSignerInputDateUsValidation() {
318    return value8;
319  }
320
321  public boolean isSignRequestSignerInputDateEuValidation() {
322    return value9 != null;
323  }
324
325  public SignRequestSignerInputDateEuValidation getSignRequestSignerInputDateEuValidation() {
326    return value9;
327  }
328
329  public boolean isSignRequestSignerInputDateAsiaValidation() {
330    return value10 != null;
331  }
332
333  public SignRequestSignerInputDateAsiaValidation getSignRequestSignerInputDateAsiaValidation() {
334    return value10;
335  }
336
337  public String getValidationType() {
338    return validationType;
339  }
340
341  static class SignRequestSignerInputValidationDeserializer
342      extends JsonDeserializer<SignRequestSignerInputValidation> {
343
344    public SignRequestSignerInputValidationDeserializer() {
345      super();
346    }
347
348    @Override
349    public SignRequestSignerInputValidation deserialize(JsonParser jp, DeserializationContext ctxt)
350        throws IOException {
351      JsonNode node = JsonManager.jsonToSerializedData(jp);
352      try {
353        return new SignRequestSignerInputValidation(
354            OneOfEleven.OBJECT_MAPPER.convertValue(
355                node, SignRequestSignerInputEmailValidation.class));
356      } catch (Exception ignored) {
357      }
358      try {
359        return new SignRequestSignerInputValidation(
360            OneOfEleven.OBJECT_MAPPER.convertValue(
361                node, SignRequestSignerInputCustomValidation.class));
362      } catch (Exception ignored) {
363      }
364      try {
365        return new SignRequestSignerInputValidation(
366            OneOfEleven.OBJECT_MAPPER.convertValue(
367                node, SignRequestSignerInputZipValidation.class));
368      } catch (Exception ignored) {
369      }
370      try {
371        return new SignRequestSignerInputValidation(
372            OneOfEleven.OBJECT_MAPPER.convertValue(
373                node, SignRequestSignerInputZip4Validation.class));
374      } catch (Exception ignored) {
375      }
376      try {
377        return new SignRequestSignerInputValidation(
378            OneOfEleven.OBJECT_MAPPER.convertValue(
379                node, SignRequestSignerInputSsnValidation.class));
380      } catch (Exception ignored) {
381      }
382      try {
383        return new SignRequestSignerInputValidation(
384            OneOfEleven.OBJECT_MAPPER.convertValue(
385                node, SignRequestSignerInputNumberWithPeriodValidation.class));
386      } catch (Exception ignored) {
387      }
388      try {
389        return new SignRequestSignerInputValidation(
390            OneOfEleven.OBJECT_MAPPER.convertValue(
391                node, SignRequestSignerInputNumberWithCommaValidation.class));
392      } catch (Exception ignored) {
393      }
394      try {
395        return new SignRequestSignerInputValidation(
396            OneOfEleven.OBJECT_MAPPER.convertValue(
397                node, SignRequestSignerInputDateIsoValidation.class));
398      } catch (Exception ignored) {
399      }
400      try {
401        return new SignRequestSignerInputValidation(
402            OneOfEleven.OBJECT_MAPPER.convertValue(
403                node, SignRequestSignerInputDateUsValidation.class));
404      } catch (Exception ignored) {
405      }
406      try {
407        return new SignRequestSignerInputValidation(
408            OneOfEleven.OBJECT_MAPPER.convertValue(
409                node, SignRequestSignerInputDateEuValidation.class));
410      } catch (Exception ignored) {
411      }
412      try {
413        return new SignRequestSignerInputValidation(
414            OneOfEleven.OBJECT_MAPPER.convertValue(
415                node, SignRequestSignerInputDateAsiaValidation.class));
416      } catch (Exception ignored) {
417      }
418      throw new JsonMappingException(jp, "Unable to deserialize SignRequestSignerInputValidation");
419    }
420  }
421}