01: package com.jeta.forms.store.jml;
02:
03: import java.util.Iterator;
04: import java.util.List;
05:
06: import com.jeta.forms.store.jml.dom.JMLDocument;
07: import com.jeta.forms.store.jml.dom.JMLNode;
08:
09: public class ListSerializer implements JMLSerializer {
10:
11: /**
12: * The list class we are serializaing (e.g. LinkedList or ArrayList )
13: */
14: private Class m_listClass;
15:
16: /**
17: * ctor
18: *
19: * @param listClass
20: */
21: public ListSerializer(Class listClass) {
22: m_listClass = listClass;
23: }
24:
25: /**
26: * XMLDeserializer implementation <object classname="java.util.LinkedList or
27: * java.util.ArrayList"> <item> <property name="value"><object>,,,</object></property>
28: * </item> ... <item> </item> </object>
29: */
30: public JMLNode serialize(JMLDocument document, Object obj)
31: throws JMLException {
32:
33: JMLUtils.verifyObjectType(obj, m_listClass);
34:
35: JMLNode hashNode = JMLUtils.createObjectNode(document, obj);
36: List list = (List) obj;
37:
38: if (list != null) {
39: Iterator iter = list.iterator();
40: while (iter.hasNext()) {
41: Object item = iter.next();
42: JMLNode itemnode = document.createNode("item");
43: itemnode.appendChild(JMLUtils.createPropertyNode(
44: document, "value", JMLUtils
45: .getPrimitiveHolder(item)));
46: hashNode.appendChild(itemnode);
47: }
48: }
49: return hashNode;
50: }
51: }
|