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; import com.netifera.platform.net.model.ServiceEntity; public class MXRecordEntity extends DNSRecordEntity { private static final long serialVersionUID = -60010876317109369L; final public static String ENTITY_TYPE = "dns.mx"; final private String target; final private Integer priority; private IEntityReference service; public MXRecordEntity(IWorkspace workspace, long realmId, IEntityReference domain, String target, Integer priority, ServiceEntity service) { this(workspace, realmId, domain, target, priority); if (service != null) setService(service); } public MXRecordEntity(IWorkspace workspace, long realmId, IEntityReference domain, String target, Integer priority) { super(ENTITY_TYPE, workspace, realmId, domain); this.target = target; this.priority = priority; } MXRecordEntity() { target = null; priority = null; } public String getTarget() { return target; } public Integer getPriority() { return priority; } public void setService(ServiceEntity service) { this.service = service.createReference(); } public ServiceEntity getService() { return (ServiceEntity) this.referenceToEntity(service); } @Override protected void synchronizeEntity(AbstractEntity masterEntity) { this.service = ((MXRecordEntity)masterEntity).service; } @Override protected IEntity cloneEntity() { return new MXRecordEntity(getWorkspace(), getRealmId(), domain, target, priority, getService()); } public static String createQueryKey(long realmId, String target, long domainId) { return ENTITY_TYPE + ":" + realmId + ":" + target + ":" + domainId; } @Override protected String generateQueryKey() { return createQueryKey(getRealmId(), target, getDomain().getId()); } }