package de.hsadmin.remote; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.StringTokenizer; 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)) { StringTokenizer tokenizer = new StringTokenizer(target, ","); List tokenList = new ArrayList(); while (tokenizer.hasMoreTokens()) { tokenList.add(tokenizer.nextToken().trim()); } map.put("target", tokenList); } 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 != null && l instanceof Object[]) { StringBuffer tBuff = new StringBuffer(); Object[] targetObjArray = (Object[]) l; for (int idx=0; idx 0) { tBuff.append(','); } tBuff.append((String) targetObjArray[idx]); } } adr.setTarget(tBuff.toString()); } else { if (l != null && l instanceof String) { adr.setTarget((String) l); } } 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 protected String getOrderBy() { return "ORDER BY obj.domain.name ASC, obj.subdomain ASC, obj.localpart ASC"; } }