001    /*
002     @license.text@
003      */
004    package biz.hammurapi.xml.dom;
005    
006    import org.w3c.dom.Element;
007    
008    import biz.hammurapi.xml.dom.CompositeDomSerializer.Member;
009    
010    /**
011     * @author Pavel Vlasov
012     *
013     * @version $Revision: 1.3 $
014     */
015    public class ArrayDomSerializer implements Member {
016    
017            private CompositeDomSerializer owner;
018    
019            public DomSerializable toDomSerializable(final Object[] oa) {
020                    return new DomSerializable() {
021    
022                            public void toDom(Element holder) {
023                                    holder.setAttribute("type", oa.getClass().getName());
024                                for (int i=0; i<oa.length; i++) {                                        
025                                    DomSerializable eds=owner.getStackHead().toDomSerializable(oa[i]);
026                                    if (eds!=null) {
027                                            Element el=holder.getOwnerDocument().createElement("element");
028                                            holder.appendChild(el);
029                                            eds.toDom(el);
030                                    }
031                                }                   
032                            }
033                            
034                    };
035            }
036    
037            /**
038             * Callback method
039             */
040            public void setOwner(CompositeDomSerializer owner) {
041                    this.owner=owner;
042            }
043    }