package de.hsadmin.remote; import java.util.List; 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 = (String) map.get("localpart"); if (assertNotNull(localpart)) { adr.setLocalpart(localpart); } String subdomain = (String) map.get("subdomain"); if (assertNotNull(subdomain)) { adr.setSubdomain(subdomain); } Object l = map.get("target"); if (l instanceof String) { String target = (String) l; if (assertNotNull(target)) { adr.setTarget(target); } } if (l instanceof List) { StringBuffer tBuff = new StringBuffer(); for (Object o : (List) l) { if (o instanceof String) { if (tBuff.length() > 0) { tBuff.append(','); } tBuff.append((String) o); } } adr.setTarget(tBuff.toString()); } String domain = (String) 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"; } }