001package com.box.sdkgen.managers.metadatataxonomies;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import java.util.Objects;
008
009@JsonFilter("nullablePropertyFilter")
010public class CreateMetadataTaxonomyNodeRequestBody extends SerializableObject {
011
012  /** The display name of the taxonomy node. */
013  protected final String displayName;
014
015  /** The level of the taxonomy node. */
016  protected final long level;
017
018  /** The identifier of the parent taxonomy node. Omit this field for root-level nodes. */
019  protected String parentId;
020
021  public CreateMetadataTaxonomyNodeRequestBody(
022      @JsonProperty("displayName") String displayName, @JsonProperty("level") long level) {
023    super();
024    this.displayName = displayName;
025    this.level = level;
026  }
027
028  protected CreateMetadataTaxonomyNodeRequestBody(Builder builder) {
029    super();
030    this.displayName = builder.displayName;
031    this.level = builder.level;
032    this.parentId = builder.parentId;
033    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
034  }
035
036  public String getDisplayName() {
037    return displayName;
038  }
039
040  public long getLevel() {
041    return level;
042  }
043
044  public String getParentId() {
045    return parentId;
046  }
047
048  @Override
049  public boolean equals(Object o) {
050    if (this == o) {
051      return true;
052    }
053    if (o == null || getClass() != o.getClass()) {
054      return false;
055    }
056    CreateMetadataTaxonomyNodeRequestBody casted = (CreateMetadataTaxonomyNodeRequestBody) o;
057    return Objects.equals(displayName, casted.displayName)
058        && Objects.equals(level, casted.level)
059        && Objects.equals(parentId, casted.parentId);
060  }
061
062  @Override
063  public int hashCode() {
064    return Objects.hash(displayName, level, parentId);
065  }
066
067  @Override
068  public String toString() {
069    return "CreateMetadataTaxonomyNodeRequestBody{"
070        + "displayName='"
071        + displayName
072        + '\''
073        + ", "
074        + "level='"
075        + level
076        + '\''
077        + ", "
078        + "parentId='"
079        + parentId
080        + '\''
081        + "}";
082  }
083
084  public static class Builder extends NullableFieldTracker {
085
086    protected final String displayName;
087
088    protected final long level;
089
090    protected String parentId;
091
092    public Builder(String displayName, long level) {
093      super();
094      this.displayName = displayName;
095      this.level = level;
096    }
097
098    public Builder parentId(String parentId) {
099      this.parentId = parentId;
100      return this;
101    }
102
103    public CreateMetadataTaxonomyNodeRequestBody build() {
104      return new CreateMetadataTaxonomyNodeRequestBody(this);
105    }
106  }
107}