package co.forsaken.projectindigo.session;
import java.util.Date;
import java.util.List;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
public class Account implements Comparable<Account> {
@Getter @Setter private String id;
@Getter private String password;
@Getter @Setter private Date lastUsed;
@Getter @Setter private List<Identity> identities;
public Account() {}
public Account(String id) {
setId(id);
}
public void setPassword(String password) {
if (password != null && password.isEmpty()) {
password = null;
}
this.password = password;
}
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Account account = (Account) o;
if (!id.equalsIgnoreCase(account.id)) return false;
return true;
}
public int hashCode() {
return id.toLowerCase().hashCode();
}
public int compareTo(@NonNull Account o) {
Date otherDate = o.getLastUsed();
if (otherDate == null && lastUsed == null) {
return 0;
} else if (otherDate == null) {
return -1;
} else if (lastUsed == null) {
return 1;
} else {
return -lastUsed.compareTo(otherDate);
}
}
@Override public String toString() {
return getId();
}
}