001package com.box.sdkgen.schemas.fileversionfull; 002 003import com.box.sdkgen.schemas.fileversion.FileVersion; 004import com.box.sdkgen.schemas.fileversionbase.FileVersionBaseTypeField; 005import com.box.sdkgen.schemas.usermini.UserMini; 006import com.box.sdkgen.serialization.json.EnumWrapper; 007import com.fasterxml.jackson.annotation.JsonFilter; 008import com.fasterxml.jackson.annotation.JsonProperty; 009import java.time.OffsetDateTime; 010import java.util.Objects; 011 012/** 013 * A full representation of a file version, as can be returned from any file version API endpoints 014 * by default. 015 */ 016@JsonFilter("nullablePropertyFilter") 017public class FileVersionFull extends FileVersion { 018 019 /** The version number of this file version. */ 020 @JsonProperty("version_number") 021 protected String versionNumber; 022 023 public FileVersionFull(@JsonProperty("id") String id) { 024 super(id); 025 } 026 027 protected FileVersionFull(Builder builder) { 028 super(builder); 029 this.versionNumber = builder.versionNumber; 030 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 031 } 032 033 public String getVersionNumber() { 034 return versionNumber; 035 } 036 037 @Override 038 public boolean equals(Object o) { 039 if (this == o) { 040 return true; 041 } 042 if (o == null || getClass() != o.getClass()) { 043 return false; 044 } 045 FileVersionFull casted = (FileVersionFull) o; 046 return Objects.equals(id, casted.id) 047 && Objects.equals(type, casted.type) 048 && Objects.equals(sha1, casted.sha1) 049 && Objects.equals(name, casted.name) 050 && Objects.equals(size, casted.size) 051 && Objects.equals(createdAt, casted.createdAt) 052 && Objects.equals(modifiedAt, casted.modifiedAt) 053 && Objects.equals(modifiedBy, casted.modifiedBy) 054 && Objects.equals(trashedAt, casted.trashedAt) 055 && Objects.equals(trashedBy, casted.trashedBy) 056 && Objects.equals(restoredAt, casted.restoredAt) 057 && Objects.equals(restoredBy, casted.restoredBy) 058 && Objects.equals(purgedAt, casted.purgedAt) 059 && Objects.equals(uploaderDisplayName, casted.uploaderDisplayName) 060 && Objects.equals(versionNumber, casted.versionNumber); 061 } 062 063 @Override 064 public int hashCode() { 065 return Objects.hash( 066 id, 067 type, 068 sha1, 069 name, 070 size, 071 createdAt, 072 modifiedAt, 073 modifiedBy, 074 trashedAt, 075 trashedBy, 076 restoredAt, 077 restoredBy, 078 purgedAt, 079 uploaderDisplayName, 080 versionNumber); 081 } 082 083 @Override 084 public String toString() { 085 return "FileVersionFull{" 086 + "id='" 087 + id 088 + '\'' 089 + ", " 090 + "type='" 091 + type 092 + '\'' 093 + ", " 094 + "sha1='" 095 + sha1 096 + '\'' 097 + ", " 098 + "name='" 099 + name 100 + '\'' 101 + ", " 102 + "size='" 103 + size 104 + '\'' 105 + ", " 106 + "createdAt='" 107 + createdAt 108 + '\'' 109 + ", " 110 + "modifiedAt='" 111 + modifiedAt 112 + '\'' 113 + ", " 114 + "modifiedBy='" 115 + modifiedBy 116 + '\'' 117 + ", " 118 + "trashedAt='" 119 + trashedAt 120 + '\'' 121 + ", " 122 + "trashedBy='" 123 + trashedBy 124 + '\'' 125 + ", " 126 + "restoredAt='" 127 + restoredAt 128 + '\'' 129 + ", " 130 + "restoredBy='" 131 + restoredBy 132 + '\'' 133 + ", " 134 + "purgedAt='" 135 + purgedAt 136 + '\'' 137 + ", " 138 + "uploaderDisplayName='" 139 + uploaderDisplayName 140 + '\'' 141 + ", " 142 + "versionNumber='" 143 + versionNumber 144 + '\'' 145 + "}"; 146 } 147 148 public static class Builder extends FileVersion.Builder { 149 150 protected String versionNumber; 151 152 public Builder(String id) { 153 super(id); 154 } 155 156 public Builder versionNumber(String versionNumber) { 157 this.versionNumber = versionNumber; 158 return this; 159 } 160 161 @Override 162 public Builder type(FileVersionBaseTypeField type) { 163 this.type = new EnumWrapper<FileVersionBaseTypeField>(type); 164 return this; 165 } 166 167 @Override 168 public Builder type(EnumWrapper<FileVersionBaseTypeField> type) { 169 this.type = type; 170 return this; 171 } 172 173 @Override 174 public Builder sha1(String sha1) { 175 this.sha1 = sha1; 176 return this; 177 } 178 179 @Override 180 public Builder name(String name) { 181 this.name = name; 182 return this; 183 } 184 185 @Override 186 public Builder size(Long size) { 187 this.size = size; 188 return this; 189 } 190 191 @Override 192 public Builder createdAt(OffsetDateTime createdAt) { 193 this.createdAt = createdAt; 194 return this; 195 } 196 197 @Override 198 public Builder modifiedAt(OffsetDateTime modifiedAt) { 199 this.modifiedAt = modifiedAt; 200 return this; 201 } 202 203 @Override 204 public Builder modifiedBy(UserMini modifiedBy) { 205 this.modifiedBy = modifiedBy; 206 return this; 207 } 208 209 @Override 210 public Builder trashedAt(OffsetDateTime trashedAt) { 211 this.trashedAt = trashedAt; 212 this.markNullableFieldAsSet("trashed_at"); 213 return this; 214 } 215 216 @Override 217 public Builder trashedBy(UserMini trashedBy) { 218 this.trashedBy = trashedBy; 219 return this; 220 } 221 222 @Override 223 public Builder restoredAt(OffsetDateTime restoredAt) { 224 this.restoredAt = restoredAt; 225 this.markNullableFieldAsSet("restored_at"); 226 return this; 227 } 228 229 @Override 230 public Builder restoredBy(UserMini restoredBy) { 231 this.restoredBy = restoredBy; 232 return this; 233 } 234 235 @Override 236 public Builder purgedAt(OffsetDateTime purgedAt) { 237 this.purgedAt = purgedAt; 238 this.markNullableFieldAsSet("purged_at"); 239 return this; 240 } 241 242 @Override 243 public Builder uploaderDisplayName(String uploaderDisplayName) { 244 this.uploaderDisplayName = uploaderDisplayName; 245 return this; 246 } 247 248 public FileVersionFull build() { 249 if (this.type == null) { 250 this.type = 251 new EnumWrapper<FileVersionBaseTypeField>(FileVersionBaseTypeField.FILE_VERSION); 252 } 253 return new FileVersionFull(this); 254 } 255 } 256}