001package com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation;
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 number with comma formatting rules for a text field input by the signer. If set,
014 * this validation is mandatory.
015 */
016@JsonFilter("nullablePropertyFilter")
017public class SignRequestSignerInputNumberWithCommaValidation extends SerializableObject {
018
019  /**
020   * Validates that the text input uses a number format with a comma as the decimal separator (for
021   * example, 1,23).
022   */
023  @JsonDeserialize(
024      using =
025          SignRequestSignerInputNumberWithCommaValidationValidationTypeField
026              .SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldDeserializer.class)
027  @JsonSerialize(
028      using =
029          SignRequestSignerInputNumberWithCommaValidationValidationTypeField
030              .SignRequestSignerInputNumberWithCommaValidationValidationTypeFieldSerializer.class)
031  @JsonProperty("validation_type")
032  protected EnumWrapper<SignRequestSignerInputNumberWithCommaValidationValidationTypeField>
033      validationType;
034
035  public SignRequestSignerInputNumberWithCommaValidation() {
036    super();
037  }
038
039  protected SignRequestSignerInputNumberWithCommaValidation(Builder builder) {
040    super();
041    this.validationType = builder.validationType;
042    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
043  }
044
045  public EnumWrapper<SignRequestSignerInputNumberWithCommaValidationValidationTypeField>
046      getValidationType() {
047    return validationType;
048  }
049
050  @Override
051  public boolean equals(Object o) {
052    if (this == o) {
053      return true;
054    }
055    if (o == null || getClass() != o.getClass()) {
056      return false;
057    }
058    SignRequestSignerInputNumberWithCommaValidation casted =
059        (SignRequestSignerInputNumberWithCommaValidation) o;
060    return Objects.equals(validationType, casted.validationType);
061  }
062
063  @Override
064  public int hashCode() {
065    return Objects.hash(validationType);
066  }
067
068  @Override
069  public String toString() {
070    return "SignRequestSignerInputNumberWithCommaValidation{"
071        + "validationType='"
072        + validationType
073        + '\''
074        + "}";
075  }
076
077  public static class Builder extends NullableFieldTracker {
078
079    protected EnumWrapper<SignRequestSignerInputNumberWithCommaValidationValidationTypeField>
080        validationType;
081
082    public Builder validationType(
083        SignRequestSignerInputNumberWithCommaValidationValidationTypeField validationType) {
084      this.validationType =
085          new EnumWrapper<SignRequestSignerInputNumberWithCommaValidationValidationTypeField>(
086              validationType);
087      return this;
088    }
089
090    public Builder validationType(
091        EnumWrapper<SignRequestSignerInputNumberWithCommaValidationValidationTypeField>
092            validationType) {
093      this.validationType = validationType;
094      return this;
095    }
096
097    public SignRequestSignerInputNumberWithCommaValidation build() {
098      return new SignRequestSignerInputNumberWithCommaValidation(this);
099    }
100  }
101}