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