001package com.box.sdkgen.schemas.comments;
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 CommentsOrderField extends SerializableObject {
013
014  /** The field to order by. */
015  protected String by;
016
017  /** The direction to order by, either ascending or descending. */
018  @JsonDeserialize(
019      using = CommentsOrderDirectionField.CommentsOrderDirectionFieldDeserializer.class)
020  @JsonSerialize(using = CommentsOrderDirectionField.CommentsOrderDirectionFieldSerializer.class)
021  protected EnumWrapper<CommentsOrderDirectionField> direction;
022
023  public CommentsOrderField() {
024    super();
025  }
026
027  protected CommentsOrderField(Builder builder) {
028    super();
029    this.by = builder.by;
030    this.direction = builder.direction;
031    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
032  }
033
034  public String getBy() {
035    return by;
036  }
037
038  public EnumWrapper<CommentsOrderDirectionField> getDirection() {
039    return direction;
040  }
041
042  @Override
043  public boolean equals(Object o) {
044    if (this == o) {
045      return true;
046    }
047    if (o == null || getClass() != o.getClass()) {
048      return false;
049    }
050    CommentsOrderField casted = (CommentsOrderField) o;
051    return Objects.equals(by, casted.by) && Objects.equals(direction, casted.direction);
052  }
053
054  @Override
055  public int hashCode() {
056    return Objects.hash(by, direction);
057  }
058
059  @Override
060  public String toString() {
061    return "CommentsOrderField{"
062        + "by='"
063        + by
064        + '\''
065        + ", "
066        + "direction='"
067        + direction
068        + '\''
069        + "}";
070  }
071
072  public static class Builder extends NullableFieldTracker {
073
074    protected String by;
075
076    protected EnumWrapper<CommentsOrderDirectionField> direction;
077
078    public Builder by(String by) {
079      this.by = by;
080      return this;
081    }
082
083    public Builder direction(CommentsOrderDirectionField direction) {
084      this.direction = new EnumWrapper<CommentsOrderDirectionField>(direction);
085      return this;
086    }
087
088    public Builder direction(EnumWrapper<CommentsOrderDirectionField> direction) {
089      this.direction = direction;
090      return this;
091    }
092
093    public CommentsOrderField build() {
094      return new CommentsOrderField(this);
095    }
096  }
097}