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