class MailAddress implements java.io.Serializable {

    @Override
    public String toString() {
        return localPart + "@" + Optional.ofNullable(domain)
            .map(Domain::asString)
            .orElse("");
    }

    private  MailAddress();
    public  MailAddress(String address);
    public  MailAddress(String localPart, String domain);
    public  MailAddress(String localPart, Domain domain);
    public  MailAddress(InternetAddress address);

}