001package com.box.sdkgen.schemas.zipdownload;
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.annotation.JsonProperty;
008import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
009import com.fasterxml.jackson.databind.annotation.JsonSerialize;
010import java.util.Objects;
011
012@JsonFilter("nullablePropertyFilter")
013public class ZipDownloadNameConflictsField extends SerializableObject {
014
015  /** The identifier of the item. */
016  protected String id;
017
018  /** The type of this item. */
019  @JsonDeserialize(
020      using = ZipDownloadNameConflictsTypeField.ZipDownloadNameConflictsTypeFieldDeserializer.class)
021  @JsonSerialize(
022      using = ZipDownloadNameConflictsTypeField.ZipDownloadNameConflictsTypeFieldSerializer.class)
023  protected EnumWrapper<ZipDownloadNameConflictsTypeField> type;
024
025  /** Box Developer Documentation. */
026  @JsonProperty("original_name")
027  protected String originalName;
028
029  /** The new name of this item as it will appear in the downloaded `zip` archive. */
030  @JsonProperty("download_name")
031  protected String downloadName;
032
033  public ZipDownloadNameConflictsField() {
034    super();
035  }
036
037  protected ZipDownloadNameConflictsField(Builder builder) {
038    super();
039    this.id = builder.id;
040    this.type = builder.type;
041    this.originalName = builder.originalName;
042    this.downloadName = builder.downloadName;
043    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
044  }
045
046  public String getId() {
047    return id;
048  }
049
050  public EnumWrapper<ZipDownloadNameConflictsTypeField> getType() {
051    return type;
052  }
053
054  public String getOriginalName() {
055    return originalName;
056  }
057
058  public String getDownloadName() {
059    return downloadName;
060  }
061
062  @Override
063  public boolean equals(Object o) {
064    if (this == o) {
065      return true;
066    }
067    if (o == null || getClass() != o.getClass()) {
068      return false;
069    }
070    ZipDownloadNameConflictsField casted = (ZipDownloadNameConflictsField) o;
071    return Objects.equals(id, casted.id)
072        && Objects.equals(type, casted.type)
073        && Objects.equals(originalName, casted.originalName)
074        && Objects.equals(downloadName, casted.downloadName);
075  }
076
077  @Override
078  public int hashCode() {
079    return Objects.hash(id, type, originalName, downloadName);
080  }
081
082  @Override
083  public String toString() {
084    return "ZipDownloadNameConflictsField{"
085        + "id='"
086        + id
087        + '\''
088        + ", "
089        + "type='"
090        + type
091        + '\''
092        + ", "
093        + "originalName='"
094        + originalName
095        + '\''
096        + ", "
097        + "downloadName='"
098        + downloadName
099        + '\''
100        + "}";
101  }
102
103  public static class Builder extends NullableFieldTracker {
104
105    protected String id;
106
107    protected EnumWrapper<ZipDownloadNameConflictsTypeField> type;
108
109    protected String originalName;
110
111    protected String downloadName;
112
113    public Builder id(String id) {
114      this.id = id;
115      return this;
116    }
117
118    public Builder type(ZipDownloadNameConflictsTypeField type) {
119      this.type = new EnumWrapper<ZipDownloadNameConflictsTypeField>(type);
120      return this;
121    }
122
123    public Builder type(EnumWrapper<ZipDownloadNameConflictsTypeField> type) {
124      this.type = type;
125      return this;
126    }
127
128    public Builder originalName(String originalName) {
129      this.originalName = originalName;
130      return this;
131    }
132
133    public Builder downloadName(String downloadName) {
134      this.downloadName = downloadName;
135      return this;
136    }
137
138    public ZipDownloadNameConflictsField build() {
139      return new ZipDownloadNameConflictsField(this);
140    }
141  }
142}