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