001package com.box.sdkgen.schemas.statusskillcard;
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@JsonFilter("nullablePropertyFilter")
013public class StatusSkillCardStatusField extends SerializableObject {
014
015  /**
016   * A code for the status of this Skill invocation. By default each of these will have their own
017   * accompanied messages. These can be adjusted by setting the `message` value on this object.
018   */
019  @JsonDeserialize(
020      using = StatusSkillCardStatusCodeField.StatusSkillCardStatusCodeFieldDeserializer.class)
021  @JsonSerialize(
022      using = StatusSkillCardStatusCodeField.StatusSkillCardStatusCodeFieldSerializer.class)
023  protected final EnumWrapper<StatusSkillCardStatusCodeField> code;
024
025  /**
026   * A custom message that can be provided with this status. This will be shown in the web app to
027   * the end user.
028   */
029  protected String message;
030
031  public StatusSkillCardStatusField(StatusSkillCardStatusCodeField code) {
032    super();
033    this.code = new EnumWrapper<StatusSkillCardStatusCodeField>(code);
034  }
035
036  public StatusSkillCardStatusField(
037      @JsonProperty("code") EnumWrapper<StatusSkillCardStatusCodeField> code) {
038    super();
039    this.code = code;
040  }
041
042  protected StatusSkillCardStatusField(Builder builder) {
043    super();
044    this.code = builder.code;
045    this.message = builder.message;
046    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
047  }
048
049  public EnumWrapper<StatusSkillCardStatusCodeField> getCode() {
050    return code;
051  }
052
053  public String getMessage() {
054    return message;
055  }
056
057  @Override
058  public boolean equals(Object o) {
059    if (this == o) {
060      return true;
061    }
062    if (o == null || getClass() != o.getClass()) {
063      return false;
064    }
065    StatusSkillCardStatusField casted = (StatusSkillCardStatusField) o;
066    return Objects.equals(code, casted.code) && Objects.equals(message, casted.message);
067  }
068
069  @Override
070  public int hashCode() {
071    return Objects.hash(code, message);
072  }
073
074  @Override
075  public String toString() {
076    return "StatusSkillCardStatusField{"
077        + "code='"
078        + code
079        + '\''
080        + ", "
081        + "message='"
082        + message
083        + '\''
084        + "}";
085  }
086
087  public static class Builder extends NullableFieldTracker {
088
089    protected final EnumWrapper<StatusSkillCardStatusCodeField> code;
090
091    protected String message;
092
093    public Builder(StatusSkillCardStatusCodeField code) {
094      super();
095      this.code = new EnumWrapper<StatusSkillCardStatusCodeField>(code);
096    }
097
098    public Builder(EnumWrapper<StatusSkillCardStatusCodeField> code) {
099      super();
100      this.code = code;
101    }
102
103    public Builder message(String message) {
104      this.message = message;
105      return this;
106    }
107
108    public StatusSkillCardStatusField build() {
109      return new StatusSkillCardStatusField(this);
110    }
111  }
112}