package dslab.routing; import java.util.Objects; /** * Represents a mail address, i.e. zaphod@univer.ze */ public class Address{ private final String user; private final Domain domain; public Address(String user, Domain domain) { this.user = user; this.domain = domain; } public Address(String address) { address = address.strip(); var parts = address.split("@"); this.user = parts[0]; this.domain = new Domain(parts[1]); } //copy constructor public Address(Address address) { this.user = address.getUsername(); this.domain = address.getDomain(); } public String getUsername() { return user; } public Domain getDomain() { return domain; } @Override public String toString() { return user + "@" + domain; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Address address = (Address) o; return user.equals(address.user) && domain.equals(address.domain); } @Override public int hashCode() { return Objects.hash(user, domain); } }