001package com.box.sdkgen.schemas.shieldinformationbarriersegmentmember;
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 ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField
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          ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField
022              .ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldDeserializer
023              .class)
024  @JsonSerialize(
025      using =
026          ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField
027              .ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeFieldSerializer
028              .class)
029  protected EnumWrapper<
030          ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>
031      type;
032
033  public ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField() {
034    super();
035  }
036
037  protected ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField(
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<ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>
050      getType() {
051    return type;
052  }
053
054  @Override
055  public boolean equals(Object o) {
056    if (this == o) {
057      return true;
058    }
059    if (o == null || getClass() != o.getClass()) {
060      return false;
061    }
062    ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField casted =
063        (ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField) o;
064    return Objects.equals(id, casted.id) && Objects.equals(type, casted.type);
065  }
066
067  @Override
068  public int hashCode() {
069    return Objects.hash(id, type);
070  }
071
072  @Override
073  public String toString() {
074    return "ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField{"
075        + "id='"
076        + id
077        + '\''
078        + ", "
079        + "type='"
080        + type
081        + '\''
082        + "}";
083  }
084
085  public static class Builder extends NullableFieldTracker {
086
087    protected String id;
088
089    protected EnumWrapper<
090            ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>
091        type;
092
093    public Builder id(String id) {
094      this.id = id;
095      return this;
096    }
097
098    public Builder type(
099        ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField type) {
100      this.type =
101          new EnumWrapper<
102              ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>(type);
103      return this;
104    }
105
106    public Builder type(
107        EnumWrapper<ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentTypeField>
108            type) {
109      this.type = type;
110      return this;
111    }
112
113    public ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField build() {
114      return new ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegmentField(this);
115    }
116  }
117}