001package com.box.sdkgen.schemas.timelineskillcard; 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 TimelineSkillCardSkillField extends SerializableObject { 014 015 /** The value will always be `service`. */ 016 @JsonDeserialize( 017 using = TimelineSkillCardSkillTypeField.TimelineSkillCardSkillTypeFieldDeserializer.class) 018 @JsonSerialize( 019 using = TimelineSkillCardSkillTypeField.TimelineSkillCardSkillTypeFieldSerializer.class) 020 protected EnumWrapper<TimelineSkillCardSkillTypeField> type; 021 022 /** A custom identifier that represent the service that applied this metadata. */ 023 protected final String id; 024 025 public TimelineSkillCardSkillField(@JsonProperty("id") String id) { 026 super(); 027 this.id = id; 028 this.type = 029 new EnumWrapper<TimelineSkillCardSkillTypeField>(TimelineSkillCardSkillTypeField.SERVICE); 030 } 031 032 protected TimelineSkillCardSkillField(Builder builder) { 033 super(); 034 this.type = builder.type; 035 this.id = builder.id; 036 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 037 } 038 039 public EnumWrapper<TimelineSkillCardSkillTypeField> getType() { 040 return type; 041 } 042 043 public String getId() { 044 return id; 045 } 046 047 @Override 048 public boolean equals(Object o) { 049 if (this == o) { 050 return true; 051 } 052 if (o == null || getClass() != o.getClass()) { 053 return false; 054 } 055 TimelineSkillCardSkillField casted = (TimelineSkillCardSkillField) o; 056 return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); 057 } 058 059 @Override 060 public int hashCode() { 061 return Objects.hash(type, id); 062 } 063 064 @Override 065 public String toString() { 066 return "TimelineSkillCardSkillField{" 067 + "type='" 068 + type 069 + '\'' 070 + ", " 071 + "id='" 072 + id 073 + '\'' 074 + "}"; 075 } 076 077 public static class Builder extends NullableFieldTracker { 078 079 protected EnumWrapper<TimelineSkillCardSkillTypeField> type; 080 081 protected final String id; 082 083 public Builder(String id) { 084 super(); 085 this.id = id; 086 } 087 088 public Builder type(TimelineSkillCardSkillTypeField type) { 089 this.type = new EnumWrapper<TimelineSkillCardSkillTypeField>(type); 090 return this; 091 } 092 093 public Builder type(EnumWrapper<TimelineSkillCardSkillTypeField> type) { 094 this.type = type; 095 return this; 096 } 097 098 public TimelineSkillCardSkillField build() { 099 if (this.type == null) { 100 this.type = 101 new EnumWrapper<TimelineSkillCardSkillTypeField>( 102 TimelineSkillCardSkillTypeField.SERVICE); 103 } 104 return new TimelineSkillCardSkillField(this); 105 } 106 } 107}