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