001package com.box.sdkgen.schemas.collections; 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 CollectionsOrderField 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 = CollectionsOrderDirectionField.CollectionsOrderDirectionFieldDeserializer.class) 020 @JsonSerialize( 021 using = CollectionsOrderDirectionField.CollectionsOrderDirectionFieldSerializer.class) 022 protected EnumWrapper<CollectionsOrderDirectionField> direction; 023 024 public CollectionsOrderField() { 025 super(); 026 } 027 028 protected CollectionsOrderField(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<CollectionsOrderDirectionField> 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 CollectionsOrderField casted = (CollectionsOrderField) 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 "CollectionsOrderField{" 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<CollectionsOrderDirectionField> direction; 078 079 public Builder by(String by) { 080 this.by = by; 081 return this; 082 } 083 084 public Builder direction(CollectionsOrderDirectionField direction) { 085 this.direction = new EnumWrapper<CollectionsOrderDirectionField>(direction); 086 return this; 087 } 088 089 public Builder direction(EnumWrapper<CollectionsOrderDirectionField> direction) { 090 this.direction = direction; 091 return this; 092 } 093 094 public CollectionsOrderField build() { 095 return new CollectionsOrderField(this); 096 } 097 } 098}