001 /* 002 @license.text@ 003 */ 004 package biz.hammurapi.xml.dom; 005 006 import java.util.Iterator; 007 import java.util.Map; 008 009 import org.w3c.dom.Element; 010 011 import biz.hammurapi.convert.Converter; 012 013 /** 014 * @author Pavel Vlasov 015 * 016 * @version $Revision: 1.3 $ 017 */ 018 public class MapDomSerializer { 019 020 public DomSerializable convert(final Map map, final Converter master) { 021 return new DomSerializable() { 022 023 public void toDom(Element holder) { 024 holder.setAttribute("type", map.getClass().getName()); 025 if (master!=null) { 026 Iterator it=map.entrySet().iterator(); 027 while (it.hasNext()) { 028 Map.Entry entry=(Map.Entry) it.next(); 029 DomSerializable kds=(DomSerializable) master.convert(entry.getKey(), DomSerializable.class, null); 030 DomSerializable vds=(DomSerializable) master.convert(entry.getValue(), DomSerializable.class, null); 031 032 if (kds!=null && vds!=null) { 033 Element ee=holder.getOwnerDocument().createElement("entry"); 034 holder.appendChild(ee); 035 036 Element ke=holder.getOwnerDocument().createElement("key"); 037 ee.appendChild(ke); 038 kds.toDom( ke); 039 040 Element ve=holder.getOwnerDocument().createElement("value"); 041 ee.appendChild(ve); 042 vds.toDom(ve); 043 } 044 } 045 } 046 } 047 048 }; 049 } 050 051 }