1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.juddi.handler;
17
18 import java.util.Vector;
19
20 import org.apache.juddi.datatype.Description;
21 import org.apache.juddi.datatype.OverviewDoc;
22 import org.apache.juddi.datatype.RegistryObject;
23 import org.apache.juddi.datatype.binding.InstanceDetails;
24 import org.apache.juddi.datatype.binding.InstanceParms;
25 import org.apache.juddi.util.xml.XMLUtils;
26 import org.w3c.dom.Element;
27
28 /***
29 * "Knows about the creation and populating of InstanceDetails objects.
30 * Returns InstanceDetails."
31 *
32 * @author Steve Viens (sviens@apache.org)
33 */
34 public class InstanceDetailsHandler extends AbstractHandler
35 {
36 public static final String TAG_NAME = "instanceDetails";
37
38 private HandlerMaker maker = null;
39
40 protected InstanceDetailsHandler(HandlerMaker maker)
41 {
42 this.maker = maker;
43 }
44
45 public RegistryObject unmarshal(Element element)
46 {
47 InstanceDetails obj = new InstanceDetails();
48 Vector nodeList = null;
49 AbstractHandler handler = null;
50
51
52
53
54
55
56
57
58 nodeList = XMLUtils.getChildElementsByTagName(element,DescriptionHandler.TAG_NAME);
59 for (int i=0; i<nodeList.size(); i++)
60 {
61 handler = maker.lookup(DescriptionHandler.TAG_NAME);
62 Description descr = (Description)handler.unmarshal((Element)nodeList.elementAt(i));
63 if (descr != null)
64 obj.addDescription(descr);
65 }
66
67 nodeList = XMLUtils.getChildElementsByTagName(element,OverviewDocHandler.TAG_NAME);
68 if (nodeList.size() > 0)
69 {
70 handler = maker.lookup(OverviewDocHandler.TAG_NAME);
71 obj.setOverviewDoc((OverviewDoc)handler.unmarshal((Element)nodeList.elementAt(0)));
72 }
73
74 nodeList = XMLUtils.getChildElementsByTagName(element,InstanceParmsHandler.TAG_NAME);
75 if (nodeList.size() > 0)
76 {
77 handler = maker.lookup(InstanceParmsHandler.TAG_NAME);
78 obj.setInstanceParms((InstanceParms)handler.unmarshal((Element)nodeList.elementAt(0)));
79 }
80
81 return obj;
82 }
83
84 public void marshal(RegistryObject object,Element parent)
85 {
86 InstanceDetails instDet = (InstanceDetails)object;
87 String generic = getGeneric(null);
88 String namespace = getUDDINamespace(generic);
89 Element element = parent.getOwnerDocument().createElementNS(namespace,TAG_NAME);
90 AbstractHandler handler = null;
91
92 Vector descrVector = instDet.getDescriptionVector();
93 if ((descrVector!=null) && (descrVector.size() > 0))
94 {
95 handler = maker.lookup(DescriptionHandler.TAG_NAME);
96 for (int i=0; i < descrVector.size(); i++)
97 handler.marshal((Description)descrVector.elementAt(i),element);
98 }
99
100 OverviewDoc overDoc = instDet.getOverviewDoc();
101 if (overDoc != null)
102 {
103 handler = maker.lookup(OverviewDocHandler.TAG_NAME);
104 handler.marshal(overDoc,element);
105 }
106
107 InstanceParms instanceParms = instDet.getInstanceParms();
108 if (instanceParms != null)
109 {
110 handler = maker.lookup(InstanceParmsHandler.TAG_NAME);
111 handler.marshal(instanceParms,element);
112 }
113
114 parent.appendChild(element);
115 }
116
117
118 /****************************************************************************/
119 /****************************** TEST DRIVER *********************************/
120 /****************************************************************************/
121
122
123 public static void main(String args[])
124 throws Exception
125 {
126 }
127 }