001package com.box.sdkgen.schemas.workflow;
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 WorkflowFlowsOutcomesIfRejectedField extends SerializableObject {
014
015  /** The identifier of the outcome. */
016  protected String id;
017
018  /** The outcomes resource type. */
019  @JsonDeserialize(
020      using =
021          WorkflowFlowsOutcomesIfRejectedTypeField
022              .WorkflowFlowsOutcomesIfRejectedTypeFieldDeserializer.class)
023  @JsonSerialize(
024      using =
025          WorkflowFlowsOutcomesIfRejectedTypeField
026              .WorkflowFlowsOutcomesIfRejectedTypeFieldSerializer.class)
027  protected EnumWrapper<WorkflowFlowsOutcomesIfRejectedTypeField> type;
028
029  /** The name of the outcome. */
030  protected String name;
031
032  @JsonDeserialize(
033      using =
034          WorkflowFlowsOutcomesIfRejectedActionTypeField
035              .WorkflowFlowsOutcomesIfRejectedActionTypeFieldDeserializer.class)
036  @JsonSerialize(
037      using =
038          WorkflowFlowsOutcomesIfRejectedActionTypeField
039              .WorkflowFlowsOutcomesIfRejectedActionTypeFieldSerializer.class)
040  @JsonProperty("action_type")
041  protected EnumWrapper<WorkflowFlowsOutcomesIfRejectedActionTypeField> actionType;
042
043  public WorkflowFlowsOutcomesIfRejectedField() {
044    super();
045  }
046
047  protected WorkflowFlowsOutcomesIfRejectedField(Builder builder) {
048    super();
049    this.id = builder.id;
050    this.type = builder.type;
051    this.name = builder.name;
052    this.actionType = builder.actionType;
053    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
054  }
055
056  public String getId() {
057    return id;
058  }
059
060  public EnumWrapper<WorkflowFlowsOutcomesIfRejectedTypeField> getType() {
061    return type;
062  }
063
064  public String getName() {
065    return name;
066  }
067
068  public EnumWrapper<WorkflowFlowsOutcomesIfRejectedActionTypeField> getActionType() {
069    return actionType;
070  }
071
072  @Override
073  public boolean equals(Object o) {
074    if (this == o) {
075      return true;
076    }
077    if (o == null || getClass() != o.getClass()) {
078      return false;
079    }
080    WorkflowFlowsOutcomesIfRejectedField casted = (WorkflowFlowsOutcomesIfRejectedField) o;
081    return Objects.equals(id, casted.id)
082        && Objects.equals(type, casted.type)
083        && Objects.equals(name, casted.name)
084        && Objects.equals(actionType, casted.actionType);
085  }
086
087  @Override
088  public int hashCode() {
089    return Objects.hash(id, type, name, actionType);
090  }
091
092  @Override
093  public String toString() {
094    return "WorkflowFlowsOutcomesIfRejectedField{"
095        + "id='"
096        + id
097        + '\''
098        + ", "
099        + "type='"
100        + type
101        + '\''
102        + ", "
103        + "name='"
104        + name
105        + '\''
106        + ", "
107        + "actionType='"
108        + actionType
109        + '\''
110        + "}";
111  }
112
113  public static class Builder extends NullableFieldTracker {
114
115    protected String id;
116
117    protected EnumWrapper<WorkflowFlowsOutcomesIfRejectedTypeField> type;
118
119    protected String name;
120
121    protected EnumWrapper<WorkflowFlowsOutcomesIfRejectedActionTypeField> actionType;
122
123    public Builder id(String id) {
124      this.id = id;
125      return this;
126    }
127
128    public Builder type(WorkflowFlowsOutcomesIfRejectedTypeField type) {
129      this.type = new EnumWrapper<WorkflowFlowsOutcomesIfRejectedTypeField>(type);
130      return this;
131    }
132
133    public Builder type(EnumWrapper<WorkflowFlowsOutcomesIfRejectedTypeField> type) {
134      this.type = type;
135      return this;
136    }
137
138    public Builder name(String name) {
139      this.name = name;
140      return this;
141    }
142
143    public Builder actionType(WorkflowFlowsOutcomesIfRejectedActionTypeField actionType) {
144      this.actionType = new EnumWrapper<WorkflowFlowsOutcomesIfRejectedActionTypeField>(actionType);
145      return this;
146    }
147
148    public Builder actionType(
149        EnumWrapper<WorkflowFlowsOutcomesIfRejectedActionTypeField> actionType) {
150      this.actionType = actionType;
151      return this;
152    }
153
154    public WorkflowFlowsOutcomesIfRejectedField build() {
155      return new WorkflowFlowsOutcomesIfRejectedField(this);
156    }
157  }
158}