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