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