001package com.box.sdkgen.schemas.v2025r0.usertrackingcodev2025r0;
002
003import com.box.sdkgen.internal.Nullable;
004import com.box.sdkgen.internal.NullableFieldTracker;
005import com.box.sdkgen.internal.SerializableObject;
006import com.fasterxml.jackson.annotation.JsonFilter;
007import java.util.Objects;
008
009/** A user tracking code. */
010@JsonFilter("nullablePropertyFilter")
011public class UserTrackingCodeV2025R0 extends SerializableObject {
012
013  /** The ID of the user tracking code. */
014  @Nullable protected Long id;
015
016  /** The name of the user tracking code. */
017  @Nullable protected String name;
018
019  public UserTrackingCodeV2025R0() {
020    super();
021  }
022
023  protected UserTrackingCodeV2025R0(Builder builder) {
024    super();
025    this.id = builder.id;
026    this.name = builder.name;
027    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
028  }
029
030  public Long getId() {
031    return id;
032  }
033
034  public String getName() {
035    return name;
036  }
037
038  @Override
039  public boolean equals(Object o) {
040    if (this == o) {
041      return true;
042    }
043    if (o == null || getClass() != o.getClass()) {
044      return false;
045    }
046    UserTrackingCodeV2025R0 casted = (UserTrackingCodeV2025R0) o;
047    return Objects.equals(id, casted.id) && Objects.equals(name, casted.name);
048  }
049
050  @Override
051  public int hashCode() {
052    return Objects.hash(id, name);
053  }
054
055  @Override
056  public String toString() {
057    return "UserTrackingCodeV2025R0{" + "id='" + id + '\'' + ", " + "name='" + name + '\'' + "}";
058  }
059
060  public static class Builder extends NullableFieldTracker {
061
062    protected Long id;
063
064    protected String name;
065
066    public Builder id(Long id) {
067      this.id = id;
068      this.markNullableFieldAsSet("id");
069      return this;
070    }
071
072    public Builder name(String name) {
073      this.name = name;
074      this.markNullableFieldAsSet("name");
075      return this;
076    }
077
078    public UserTrackingCodeV2025R0 build() {
079      return new UserTrackingCodeV2025R0(this);
080    }
081  }
082}