package com.netifera.platform.net.dns.model;
import com.netifera.platform.api.model.AbstractEntity;
import com.netifera.platform.api.model.IEntity;
import com.netifera.platform.api.model.IEntityReference;
import com.netifera.platform.api.model.IWorkspace;
public class EmailAddressEntity extends AbstractEntity {
private static final long serialVersionUID = 8749273022330944283L;
final public static String ENTITY_TYPE = "address.email";
final private String address;
final private IEntityReference domain;
private String name; // should be a PersonEntity
public EmailAddressEntity(IWorkspace workspace, long realmId, String address, IEntityReference domainReference) {
super(ENTITY_TYPE, workspace, realmId);
this.address = address;
this.domain = domainReference.createClone();
}
EmailAddressEntity() {
this.address = null;
this.domain = null;
}
public String getAddress() {
return address;
}
public DomainEntity getDomain() {
return (DomainEntity) referenceToEntity(domain);
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
protected void synchronizeEntity(AbstractEntity masterEntity) {
EmailAddressEntity entity = (EmailAddressEntity) masterEntity;
name = entity.name;
}
@Override
protected IEntity cloneEntity() {
EmailAddressEntity answer = new EmailAddressEntity(getWorkspace(), getRealmId(), address, domain);
answer.name = name;
return answer;
}
public static String createQueryKey(long realmId, String address) {
return ENTITY_TYPE + ":" + realmId + ":" + address;
}
@Override
protected String generateQueryKey() {
return createQueryKey(getRealmId(), address);
}
}