package com.lyndir.omicron.webapp.data; import com.google.gson.annotations.Expose; import com.lyndir.lhunath.opal.system.i18n.Localized; import com.lyndir.lhunath.opal.system.i18n.MessagesFactory; import com.lyndir.lhunath.opal.system.util.MetaObject; import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.persistence.*; /** * @author lhunath, 2013-10-14 */ @Entity(name = "OEmailAddress") public class EmailAddress extends MetaObject implements Localized { private static final Messages msgs = MessagesFactory.create( Messages.class ); @Id @Expose private final String address; @Nullable @ManyToOne private User user; @Expose private boolean validated; @Deprecated public EmailAddress() { address = null; } public EmailAddress(final String address) { this.address = address; } @Nullable public User getUser() { return user; } public void setUser(@Nonnull final User user) { this.user = user; user.getEmailAddresses().add( this ); } public String getAddress() { return address; } public boolean isValidated() { return validated; } public void setValidated() { validated = true; } @Override public String getLocalizedType() { return msgs.type(); } @Override public String getLocalizedInstance() { return msgs.instance( address ); } interface Messages { String type(); String instance(String userName); } }