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.Name;
22 import org.apache.juddi.datatype.RegistryObject;
23 import org.apache.juddi.datatype.response.BusinessInfo;
24 import org.apache.juddi.datatype.response.BusinessInfos;
25 import org.apache.juddi.datatype.response.RegisteredInfo;
26 import org.apache.juddi.datatype.response.ServiceInfo;
27 import org.apache.juddi.datatype.response.TModelInfo;
28 import org.apache.juddi.datatype.response.TModelInfos;
29 import org.apache.juddi.util.xml.XMLUtils;
30 import org.w3c.dom.Element;
31
32 /***
33 * RegisteredInfoHandler
34 *
35 * @author Steve Viens (sviens@apache.org)
36 * @author Anou Mana (anou_mana@users.sourceforge.net)
37 */
38 public class RegisteredInfoHandler extends AbstractHandler
39 {
40 public static final String TAG_NAME = "registeredInfo";
41
42 private HandlerMaker maker = null;
43
44 protected RegisteredInfoHandler(HandlerMaker maker)
45 {
46 this.maker = maker;
47 }
48
49 public RegistryObject unmarshal(Element element)
50 {
51 RegisteredInfo obj = new RegisteredInfo();
52 Vector nodeList = null;
53 AbstractHandler handler = null;
54
55
56
57
58
59
60 obj.setGeneric(element.getAttribute("generic"));
61 obj.setOperator(element.getAttribute("operator"));
62
63
64
65
66
67
68
69
70
71 nodeList = XMLUtils.getChildElementsByTagName(element,BusinessInfosHandler.TAG_NAME);
72 if (nodeList.size() > 0)
73 {
74 handler = maker.lookup(BusinessInfosHandler.TAG_NAME);
75 obj.setBusinessInfos((BusinessInfos)handler.unmarshal((Element)nodeList.elementAt(0)));
76 }
77
78 nodeList = XMLUtils.getChildElementsByTagName(element,TModelInfosHandler.TAG_NAME);
79 if (nodeList.size() > 0)
80 {
81 handler = maker.lookup(TModelInfosHandler.TAG_NAME);
82 obj.setTModelInfos((TModelInfos)handler.unmarshal((Element)nodeList.elementAt(0)));
83 }
84
85 return obj;
86 }
87
88 public void marshal(RegistryObject object,Element parent)
89 {
90 RegisteredInfo info = (RegisteredInfo)object;
91 String generic = info.getGeneric();
92 generic = getGeneric(generic);
93 String namespace = getUDDINamespace(generic);
94 Element element = parent.getOwnerDocument().createElementNS(namespace,TAG_NAME);
95 AbstractHandler handler = null;
96
97 element.setAttribute("generic",generic);
98
99 String operator = info.getOperator();
100 if (operator != null)
101 element.setAttribute("operator",operator);
102 else
103 element.setAttribute("operator","");
104
105 BusinessInfos bInfos = info.getBusinessInfos();
106 if (bInfos!=null)
107 {
108 handler = maker.lookup(BusinessInfosHandler.TAG_NAME);
109 handler.marshal(bInfos,element);
110 }
111
112 TModelInfos tInfos = info.getTModelInfos();
113 if (tInfos!=null)
114 {
115 handler = maker.lookup(TModelInfosHandler.TAG_NAME);
116 handler.marshal(tInfos,element);
117 }
118
119 parent.appendChild(element);
120 }
121
122
123 /****************************************************************************/
124 /****************************** TEST DRIVER *********************************/
125 /****************************************************************************/
126
127
128 public static void main(String args[])
129 throws Exception
130 {
131 HandlerMaker maker = HandlerMaker.getInstance();
132 AbstractHandler handler = maker.lookup(RegisteredInfoHandler.TAG_NAME);
133
134 Element parent = XMLUtils.newRootElement();
135 Element child = null;
136
137 ServiceInfo sInfo = new ServiceInfo();
138 sInfo.addName(new Name("regInfoServNm"));
139 sInfo.addName(new Name("regInfoServNm2","en"));
140 sInfo.setServiceKey("826e6443-e3c5-442b-9bf8-943071ca83f4");
141 sInfo.setBusinessKey("56644a68-8779-46c7-93ce-90eeb7569f3f");
142
143 BusinessInfo bInfo = new BusinessInfo();
144 bInfo.setBusinessKey("56644a68-8779-46c7-93ce-90eeb7569f3f");
145 bInfo.addName(new Name("regInfoBizNm"));
146 bInfo.addName(new Name("regInfoBizNm2","en"));
147 bInfo.addDescription(new Description("regInfoBiz whatever"));
148 bInfo.addDescription(new Description("regInfoBiz whatever too","fr"));
149 bInfo.addServiceInfo(sInfo);
150
151 BusinessInfos bInfos = new BusinessInfos();
152 bInfos.addBusinessInfo(bInfo);
153 bInfos.addBusinessInfo(bInfo);
154
155 TModelInfo tInfo = new TModelInfo();
156 tInfo.setTModelKey("uuid:e86bd2a9-03f6-44c4-b619-400ef2cd7e47");
157 tInfo.setName(new Name("RegInfoTestDriver"));
158
159 TModelInfos tInfos = new TModelInfos();
160 tInfos.addTModelInfo(tInfo);
161 tInfos.addTModelInfo(tInfo);
162
163 RegisteredInfo info = new RegisteredInfo();
164 info.setGeneric("2.0");
165 info.setOperator("jUDDI.org");
166 info.setBusinessInfos(bInfos);
167 info.setTModelInfos(tInfos);
168
169 System.out.println();
170
171 RegistryObject regObject = info;
172 handler.marshal(regObject,parent);
173 child = (Element)parent.getFirstChild();
174 parent.removeChild(child);
175 XMLUtils.writeXML(child,System.out);
176
177 System.out.println();
178
179 regObject = handler.unmarshal(child);
180 handler.marshal(regObject,parent);
181 child = (Element)parent.getFirstChild();
182 parent.removeChild(child);
183 XMLUtils.writeXML(child,System.out);
184 }
185 }