001package com.box.sdkgen.schemas.emailalias; 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/** An email alias for a user. */ 013@JsonFilter("nullablePropertyFilter") 014public class EmailAlias extends SerializableObject { 015 016 /** The unique identifier for this object. */ 017 protected String id; 018 019 /** The value will always be `email_alias`. */ 020 @JsonDeserialize(using = EmailAliasTypeField.EmailAliasTypeFieldDeserializer.class) 021 @JsonSerialize(using = EmailAliasTypeField.EmailAliasTypeFieldSerializer.class) 022 protected EnumWrapper<EmailAliasTypeField> type; 023 024 /** The email address. */ 025 protected String email; 026 027 /** Whether the email address has been confirmed. */ 028 @JsonProperty("is_confirmed") 029 protected Boolean isConfirmed; 030 031 public EmailAlias() { 032 super(); 033 } 034 035 protected EmailAlias(Builder builder) { 036 super(); 037 this.id = builder.id; 038 this.type = builder.type; 039 this.email = builder.email; 040 this.isConfirmed = builder.isConfirmed; 041 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 042 } 043 044 public String getId() { 045 return id; 046 } 047 048 public EnumWrapper<EmailAliasTypeField> getType() { 049 return type; 050 } 051 052 public String getEmail() { 053 return email; 054 } 055 056 public Boolean getIsConfirmed() { 057 return isConfirmed; 058 } 059 060 @Override 061 public boolean equals(Object o) { 062 if (this == o) { 063 return true; 064 } 065 if (o == null || getClass() != o.getClass()) { 066 return false; 067 } 068 EmailAlias casted = (EmailAlias) o; 069 return Objects.equals(id, casted.id) 070 && Objects.equals(type, casted.type) 071 && Objects.equals(email, casted.email) 072 && Objects.equals(isConfirmed, casted.isConfirmed); 073 } 074 075 @Override 076 public int hashCode() { 077 return Objects.hash(id, type, email, isConfirmed); 078 } 079 080 @Override 081 public String toString() { 082 return "EmailAlias{" 083 + "id='" 084 + id 085 + '\'' 086 + ", " 087 + "type='" 088 + type 089 + '\'' 090 + ", " 091 + "email='" 092 + email 093 + '\'' 094 + ", " 095 + "isConfirmed='" 096 + isConfirmed 097 + '\'' 098 + "}"; 099 } 100 101 public static class Builder extends NullableFieldTracker { 102 103 protected String id; 104 105 protected EnumWrapper<EmailAliasTypeField> type; 106 107 protected String email; 108 109 protected Boolean isConfirmed; 110 111 public Builder id(String id) { 112 this.id = id; 113 return this; 114 } 115 116 public Builder type(EmailAliasTypeField type) { 117 this.type = new EnumWrapper<EmailAliasTypeField>(type); 118 return this; 119 } 120 121 public Builder type(EnumWrapper<EmailAliasTypeField> type) { 122 this.type = type; 123 return this; 124 } 125 126 public Builder email(String email) { 127 this.email = email; 128 return this; 129 } 130 131 public Builder isConfirmed(Boolean isConfirmed) { 132 this.isConfirmed = isConfirmed; 133 return this; 134 } 135 136 public EmailAlias build() { 137 return new EmailAlias(this); 138 } 139 } 140}