001package com.box.sdkgen.schemas.shieldinformationbarriersegmentmembermini;
002
003import com.box.sdkgen.schemas.shieldinformationbarriersegmentmemberbase.ShieldInformationBarrierSegmentMemberBase;
004import com.box.sdkgen.schemas.shieldinformationbarriersegmentmemberbase.ShieldInformationBarrierSegmentMemberBaseTypeField;
005import com.box.sdkgen.schemas.userbase.UserBase;
006import com.box.sdkgen.serialization.json.EnumWrapper;
007import com.fasterxml.jackson.annotation.JsonFilter;
008import java.util.Objects;
009
010/** A mini representation of a shield information barrier segment member object. */
011@JsonFilter("nullablePropertyFilter")
012public class ShieldInformationBarrierSegmentMemberMini
013    extends ShieldInformationBarrierSegmentMemberBase {
014
015  protected UserBase user;
016
017  public ShieldInformationBarrierSegmentMemberMini() {
018    super();
019  }
020
021  protected ShieldInformationBarrierSegmentMemberMini(Builder builder) {
022    super(builder);
023    this.user = builder.user;
024    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
025  }
026
027  public UserBase getUser() {
028    return user;
029  }
030
031  @Override
032  public boolean equals(Object o) {
033    if (this == o) {
034      return true;
035    }
036    if (o == null || getClass() != o.getClass()) {
037      return false;
038    }
039    ShieldInformationBarrierSegmentMemberMini casted =
040        (ShieldInformationBarrierSegmentMemberMini) o;
041    return Objects.equals(id, casted.id)
042        && Objects.equals(type, casted.type)
043        && Objects.equals(user, casted.user);
044  }
045
046  @Override
047  public int hashCode() {
048    return Objects.hash(id, type, user);
049  }
050
051  @Override
052  public String toString() {
053    return "ShieldInformationBarrierSegmentMemberMini{"
054        + "id='"
055        + id
056        + '\''
057        + ", "
058        + "type='"
059        + type
060        + '\''
061        + ", "
062        + "user='"
063        + user
064        + '\''
065        + "}";
066  }
067
068  public static class Builder extends ShieldInformationBarrierSegmentMemberBase.Builder {
069
070    protected UserBase user;
071
072    public Builder user(UserBase user) {
073      this.user = user;
074      return this;
075    }
076
077    @Override
078    public Builder id(String id) {
079      this.id = id;
080      return this;
081    }
082
083    @Override
084    public Builder type(ShieldInformationBarrierSegmentMemberBaseTypeField type) {
085      this.type = new EnumWrapper<ShieldInformationBarrierSegmentMemberBaseTypeField>(type);
086      return this;
087    }
088
089    @Override
090    public Builder type(EnumWrapper<ShieldInformationBarrierSegmentMemberBaseTypeField> type) {
091      this.type = type;
092      return this;
093    }
094
095    public ShieldInformationBarrierSegmentMemberMini build() {
096      return new ShieldInformationBarrierSegmentMemberMini(this);
097    }
098  }
099}