package de.hsadmin.remote; import java.util.Map; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.mods.dom.Domain; import de.hsadmin.mods.email.EMailAddress; public class EMailAddressRemote extends AbstractRemote { @Override protected void entity2map(AbstractEntity entity, Map map) { EMailAddress adr = (EMailAddress) entity; long id = adr.getId(); String domain = adr.getDomain().getName(); String admin = adr.getDomain().getUser().getName(); String pac = adr.getDomain().getUser().getPac().getName(); String target = adr.getTarget(); String localpart = adr.getLocalpart(); String subdomain = adr.getSubdomain(); String emailaddress = adr.getEMailAddress(); String fulldomain = adr.getFullDomain(); map.put("id", Long.toString(id)); if (assertNotNull(domain)) map.put("domain", domain); if (assertNotNull(admin)) map.put("admin", admin); if (assertNotNull(pac)) map.put("pac", pac); if (assertNotNull(target)) map.put("target", target); if (assertNotNull(localpart)) map.put("localpart", localpart); if (assertNotNull(subdomain)) map.put("subdomain", subdomain); if (assertNotNull(emailaddress)) map.put("emailaddress", emailaddress); if (assertNotNull(fulldomain)) map.put("fulldomain", fulldomain); } @Override protected void map2entity(Map map, AbstractEntity entity) { EMailAddress adr = (EMailAddress) entity; String localpart = map.get("localpart"); if (assertNotNull(localpart)) { adr.setLocalpart(localpart); } String subdomain = map.get("subdomain"); if (assertNotNull(subdomain)) { adr.setSubdomain(subdomain); } String target = map.get("target"); if (assertNotNull(target)) { adr.setTarget(target); } String domain = map.get("domain"); if (assertNotNull(domain)) { Domain dom = new Domain(); dom.setName(domain); adr.setDomain(dom); } } @Override protected Class getEntityClass() { return EMailAddress.class; } @Override protected void regularizeKeys(Map whereParams) { replaceKey(whereParams, "domain", "domain.name"); replaceKey(whereParams, "pac", "domain.user.pac.name"); replaceKey(whereParams, "admin", "domain.user.name"); } @Override public String getOrderBy() { return "ORDER BY obj.domain.name ASC, obj.subdomain ASC, obj.localpart ASC"; } }