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