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.Name;
21 import org.apache.juddi.datatype.RegistryObject;
22 import org.apache.juddi.datatype.response.ServiceInfo;
23 import org.apache.juddi.util.xml.XMLUtils;
24 import org.w3c.dom.Element;
25
26 /***
27 * ServiceInfoHandler
28 *
29 * @author Steve Viens (sviens@apache.org)
30 * @author Anou Mana (anou_mana@users.sourceforge.net)
31 */
32 public class ServiceInfoHandler extends AbstractHandler
33 {
34 public static final String TAG_NAME = "serviceInfo";
35
36 private HandlerMaker maker = null;
37
38 protected ServiceInfoHandler(HandlerMaker maker)
39 {
40 this.maker = maker;
41 }
42
43 public RegistryObject unmarshal(Element element)
44 {
45 ServiceInfo obj = new ServiceInfo();
46 Vector nodeList = null;
47 AbstractHandler handler = null;
48
49
50 obj.setServiceKey(element.getAttribute("serviceKey"));
51 obj.setBusinessKey(element.getAttribute("businessKey"));
52
53
54
55
56
57 nodeList = XMLUtils.getChildElementsByTagName(element,NameHandler.TAG_NAME);
58 for (int i=0; i<nodeList.size(); i++)
59 {
60 handler = maker.lookup(NameHandler.TAG_NAME);
61 Name name = (Name )handler.unmarshal((Element)nodeList.elementAt(i));
62 if (name != null)
63 obj.addName(name);
64 }
65
66 return obj;
67 }
68
69 public void marshal(RegistryObject object,Element parent)
70 {
71 ServiceInfo info = (ServiceInfo)object;
72 String generic = getGeneric(null);
73 String namespace = getUDDINamespace(generic);
74 Element element = parent.getOwnerDocument().createElementNS(namespace,TAG_NAME);
75 AbstractHandler handler = null;
76
77
78 String serviceKey = info.getServiceKey();
79 element.setAttribute("serviceKey",(serviceKey != null) ? serviceKey : "");
80
81
82 String businessKey = info.getBusinessKey();
83 element.setAttribute("businessKey",(businessKey != null) ? businessKey : "");
84
85 Vector vector = info.getNameVector();
86 if ((vector!=null) && (vector.size() > 0))
87 {
88 handler = maker.lookup(NameHandler.TAG_NAME);
89 for (int i=0; i < vector.size(); i++)
90 handler.marshal((Name)vector.elementAt(i),element);
91 }
92
93 parent.appendChild(element);
94 }
95
96
97 /****************************************************************************/
98 /****************************** TEST DRIVER *********************************/
99 /****************************************************************************/
100
101
102 public static void main(String args[])
103 throws Exception
104 {
105 }
106 }