package eu.faircode.email; /* This file is part of FairEmail. FairEmail is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. NetGuard is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with NetGuard. If not, see . Copyright 2018 by Marcel Bokhorst (M66B) */ import androidx.annotation.NonNull; import androidx.room.Entity; import androidx.room.ForeignKey; import androidx.room.Index; import androidx.room.PrimaryKey; import static androidx.room.ForeignKey.CASCADE; @Entity( tableName = EntityIdentity.TABLE_NAME, foreignKeys = { @ForeignKey(childColumns = "account", entity = EntityAccount.class, parentColumns = "id", onDelete = CASCADE) }, indices = { @Index(value = {"account"}) } ) public class EntityIdentity { static final String TABLE_NAME = "identity"; @PrimaryKey(autoGenerate = true) public Long id; @NonNull public String name; @NonNull public String email; public String replyto; @NonNull public Long account; @NonNull public String host; // SMTP @NonNull public Integer port; @NonNull public Boolean starttls; @NonNull public String user; @NonNull public String password; @NonNull public Boolean primary; @NonNull public Boolean synchronize; public String state; public String error; @Override public boolean equals(Object obj) { if (obj instanceof EntityIdentity) { EntityIdentity other = (EntityIdentity) obj; return (this.name.equals(other.name) && this.email.equals(other.email) && (this.replyto == null ? other.replyto == null : this.replyto.equals(other.replyto)) && this.account.equals(other.account) && this.host.equals(other.host) && this.port.equals(other.port) && this.starttls.equals(other.starttls) && this.user.equals(other.user) && this.password.equals(other.password) && this.primary.equals(other.primary) && this.synchronize.equals(other.synchronize) && (this.state == null ? other.state == null : this.state.equals(other.state)) && (this.error == null ? other.error == null : this.error.equals(other.error))); } else return false; } @Override public String toString() { return name + (primary ? " ★" : ""); } }