001package com.box.sdkgen.schemas.groupmemberships; 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 GroupMembershipsOrderField 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 GroupMembershipsOrderDirectionField.GroupMembershipsOrderDirectionFieldDeserializer.class) 021 @JsonSerialize( 022 using = 023 GroupMembershipsOrderDirectionField.GroupMembershipsOrderDirectionFieldSerializer.class) 024 protected EnumWrapper<GroupMembershipsOrderDirectionField> direction; 025 026 public GroupMembershipsOrderField() { 027 super(); 028 } 029 030 protected GroupMembershipsOrderField(Builder builder) { 031 super(); 032 this.by = builder.by; 033 this.direction = builder.direction; 034 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 035 } 036 037 public String getBy() { 038 return by; 039 } 040 041 public EnumWrapper<GroupMembershipsOrderDirectionField> 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 GroupMembershipsOrderField casted = (GroupMembershipsOrderField) 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 "GroupMembershipsOrderField{" 065 + "by='" 066 + by 067 + '\'' 068 + ", " 069 + "direction='" 070 + direction 071 + '\'' 072 + "}"; 073 } 074 075 public static class Builder extends NullableFieldTracker { 076 077 protected String by; 078 079 protected EnumWrapper<GroupMembershipsOrderDirectionField> direction; 080 081 public Builder by(String by) { 082 this.by = by; 083 return this; 084 } 085 086 public Builder direction(GroupMembershipsOrderDirectionField direction) { 087 this.direction = new EnumWrapper<GroupMembershipsOrderDirectionField>(direction); 088 return this; 089 } 090 091 public Builder direction(EnumWrapper<GroupMembershipsOrderDirectionField> direction) { 092 this.direction = direction; 093 return this; 094 } 095 096 public GroupMembershipsOrderField build() { 097 return new GroupMembershipsOrderField(this); 098 } 099 } 100}