001    /*
002     @license.text@
003      */
004    package biz.hammurapi.xml.dom;
005    
006    import java.util.Collection;
007    import java.util.Iterator;
008    
009    import org.w3c.dom.Element;
010    
011    import biz.hammurapi.xml.dom.CompositeDomSerializer.Member;
012    
013    /**
014     * @author Pavel Vlasov
015     *
016     * @version $Revision: 1.3 $
017     */
018    public class CollectionDomSerializer implements Member {
019    
020            private CompositeDomSerializer owner;
021    
022            public DomSerializable toDomSerializable(final Collection col) {
023                    return new DomSerializable() {
024    
025                            public void toDom(Element holder) {
026                                holder.setAttribute("type", col.getClass().getName());
027                                Iterator it=col.iterator();
028                                while (it.hasNext()) {
029                                    DomSerializable ds=owner.getStackHead().toDomSerializable(it.next());
030                                    if (ds!=null) {
031                                            Element el=holder.getOwnerDocument().createElement("element");
032                                            holder.appendChild(el);
033                                            ds.toDom(el);
034                                    }
035                                }
036                            }
037                            
038                    };
039            }
040    
041            /**
042             * Callback method
043             */
044            public void setOwner(CompositeDomSerializer owner) {
045                    this.owner=owner;
046            }
047    }