001package com.box.sdkgen.schemas.shieldinformationbarriersegmentrestrictionmini;
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.databind.annotation.JsonDeserialize;
008import com.fasterxml.jackson.databind.annotation.JsonSerialize;
009import java.util.Objects;
010
011@JsonFilter("nullablePropertyFilter")
012public class ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField
013    extends SerializableObject {
014
015  /** The ID reference of the requesting shield information barrier segment. */
016  protected String id;
017
018  /** The type of the shield information barrier segment. */
019  @JsonDeserialize(
020      using =
021          ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField
022              .ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldDeserializer
023              .class)
024  @JsonSerialize(
025      using =
026          ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField
027              .ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeFieldSerializer
028              .class)
029  protected EnumWrapper<
030          ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>
031      type;
032
033  public ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField() {
034    super();
035  }
036
037  protected ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField(
038      Builder builder) {
039    super();
040    this.id = builder.id;
041    this.type = builder.type;
042    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
043  }
044
045  public String getId() {
046    return id;
047  }
048
049  public EnumWrapper<
050          ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>
051      getType() {
052    return type;
053  }
054
055  @Override
056  public boolean equals(Object o) {
057    if (this == o) {
058      return true;
059    }
060    if (o == null || getClass() != o.getClass()) {
061      return false;
062    }
063    ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField casted =
064        (ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField) o;
065    return Objects.equals(id, casted.id) && Objects.equals(type, casted.type);
066  }
067
068  @Override
069  public int hashCode() {
070    return Objects.hash(id, type);
071  }
072
073  @Override
074  public String toString() {
075    return "ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField{"
076        + "id='"
077        + id
078        + '\''
079        + ", "
080        + "type='"
081        + type
082        + '\''
083        + "}";
084  }
085
086  public static class Builder extends NullableFieldTracker {
087
088    protected String id;
089
090    protected EnumWrapper<
091            ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>
092        type;
093
094    public Builder id(String id) {
095      this.id = id;
096      return this;
097    }
098
099    public Builder type(
100        ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField
101            type) {
102      this.type =
103          new EnumWrapper<
104              ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>(
105              type);
106      return this;
107    }
108
109    public Builder type(
110        EnumWrapper<
111                ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentTypeField>
112            type) {
113      this.type = type;
114      return this;
115    }
116
117    public ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField
118        build() {
119      return new ShieldInformationBarrierSegmentRestrictionMiniShieldInformationBarrierSegmentField(
120          this);
121    }
122  }
123}