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