001package com.box.sdkgen.schemas.groups; 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 GroupsOrderField 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 = GroupsOrderDirectionField.GroupsOrderDirectionFieldDeserializer.class) 019 @JsonSerialize(using = GroupsOrderDirectionField.GroupsOrderDirectionFieldSerializer.class) 020 protected EnumWrapper<GroupsOrderDirectionField> direction; 021 022 public GroupsOrderField() { 023 super(); 024 } 025 026 protected GroupsOrderField(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<GroupsOrderDirectionField> 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 GroupsOrderField casted = (GroupsOrderField) 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 "GroupsOrderField{" + "by='" + by + '\'' + ", " + "direction='" + direction + '\'' + "}"; 061 } 062 063 public static class Builder extends NullableFieldTracker { 064 065 protected String by; 066 067 protected EnumWrapper<GroupsOrderDirectionField> direction; 068 069 public Builder by(String by) { 070 this.by = by; 071 return this; 072 } 073 074 public Builder direction(GroupsOrderDirectionField direction) { 075 this.direction = new EnumWrapper<GroupsOrderDirectionField>(direction); 076 return this; 077 } 078 079 public Builder direction(EnumWrapper<GroupsOrderDirectionField> direction) { 080 this.direction = direction; 081 return this; 082 } 083 084 public GroupsOrderField build() { 085 return new GroupsOrderField(this); 086 } 087 } 088}