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.CategoryBag;
21 import org.apache.juddi.datatype.DiscoveryURL;
22 import org.apache.juddi.datatype.DiscoveryURLs;
23 import org.apache.juddi.datatype.IdentifierBag;
24 import org.apache.juddi.datatype.KeyedReference;
25 import org.apache.juddi.datatype.Name;
26 import org.apache.juddi.datatype.RegistryObject;
27 import org.apache.juddi.datatype.TModelBag;
28 import org.apache.juddi.datatype.TModelKey;
29 import org.apache.juddi.datatype.request.FindBusiness;
30 import org.apache.juddi.datatype.request.FindQualifier;
31 import org.apache.juddi.datatype.request.FindQualifiers;
32 import org.apache.juddi.util.xml.XMLUtils;
33 import org.w3c.dom.Element;
34
35 /***
36 * FindBusinessHandler
37 *
38 * "Knows about the creation and populating of FindBusiness objects.
39 * Returns FindBusiness."
40 *
41 * @author Steve Viens (sviens@apache.org)
42 * @author Anou Mana (anou_mana@users.sourceforge.net)
43 */
44 public class FindBusinessHandler extends AbstractHandler
45 {
46 public static final String TAG_NAME = "find_business";
47
48 private HandlerMaker maker = null;
49
50 protected FindBusinessHandler(HandlerMaker maker)
51 {
52 this.maker = maker;
53 }
54
55 public RegistryObject unmarshal(Element element)
56 {
57 FindBusiness obj = new FindBusiness();
58 Vector nodeList = null;
59 AbstractHandler handler = null;
60
61
62 String generic = element.getAttribute("generic");
63 if ((generic != null && (generic.trim().length() > 0)))
64 obj.setGeneric(generic);
65
66 String maxRows = element.getAttribute("maxRows");
67 if ((maxRows != null) && (maxRows.length() > 0))
68 obj.setMaxRows(maxRows);
69
70
71
72
73
74 nodeList = XMLUtils.getChildElementsByTagName(element,FindQualifiersHandler.TAG_NAME);
75 if (nodeList.size() > 0)
76 {
77 handler = maker.lookup(FindQualifiersHandler.TAG_NAME);
78 obj.setFindQualifiers((FindQualifiers)handler.unmarshal((Element)nodeList.elementAt(0)));
79 }
80
81 nodeList = XMLUtils.getChildElementsByTagName(element,NameHandler.TAG_NAME);
82 for (int i=0; i<nodeList.size(); i++)
83 {
84 handler = maker.lookup(NameHandler.TAG_NAME);
85 Name name = (Name )handler.unmarshal((Element)nodeList.elementAt(i));
86 if (name != null)
87 obj.addName(name);
88 }
89
90 nodeList = XMLUtils.getChildElementsByTagName(element,IdentifierBagHandler.TAG_NAME);
91 if (nodeList.size() > 0)
92 {
93 handler = maker.lookup(IdentifierBagHandler.TAG_NAME);
94 obj.setIdentifierBag((IdentifierBag)handler.unmarshal((Element)nodeList.elementAt(0)));
95 }
96
97 nodeList = XMLUtils.getChildElementsByTagName(element,CategoryBagHandler.TAG_NAME);
98 if (nodeList.size() > 0)
99 {
100 handler = maker.lookup(CategoryBagHandler.TAG_NAME);
101 obj.setCategoryBag((CategoryBag)handler.unmarshal((Element)nodeList.elementAt(0)));
102 }
103
104 nodeList = XMLUtils.getChildElementsByTagName(element,TModelBagHandler.TAG_NAME);
105 if (nodeList.size() > 0)
106 {
107 handler = maker.lookup(TModelBagHandler.TAG_NAME);
108 obj.setTModelBag((TModelBag)handler.unmarshal((Element)nodeList.elementAt(0)));
109 }
110
111 nodeList = XMLUtils.getChildElementsByTagName(element,DiscoveryURLsHandler.TAG_NAME);
112 if (nodeList.size() > 0)
113 {
114 handler = maker.lookup(DiscoveryURLsHandler.TAG_NAME);
115 obj.setDiscoveryURLs((DiscoveryURLs)handler.unmarshal((Element)nodeList.elementAt(0)));
116 }
117
118 return obj;
119 }
120
121 public void marshal(RegistryObject object,Element parent)
122 {
123 FindBusiness request = (FindBusiness)object;
124 String generic = request.getGeneric();
125 generic = getGeneric(generic);
126 String namespace = getUDDINamespace(generic);
127 Element element = parent.getOwnerDocument().createElementNS(namespace,TAG_NAME);
128 AbstractHandler handler = null;
129
130 element.setAttribute("generic",generic);
131
132 int maxRows = request.getMaxRows();
133 if (maxRows > 0)
134 element.setAttribute("maxRows",String.valueOf(maxRows));
135
136
137 FindQualifiers qualifiers = request.getFindQualifiers();
138 if ((qualifiers != null) && (qualifiers.size() > 0))
139 {
140 handler = maker.lookup(FindQualifiersHandler.TAG_NAME);
141 handler.marshal(qualifiers,element);
142 }
143
144 Vector nameVector = request.getNameVector();
145 if ((nameVector!=null) && (nameVector.size() > 0))
146 {
147 handler = maker.lookup(NameHandler.TAG_NAME);
148 for (int i=0; i < nameVector.size(); i++)
149 handler.marshal((Name)nameVector.elementAt(i),element);
150 }
151
152 IdentifierBag idBag = request.getIdentifierBag();
153 if (idBag != null)
154 {
155 handler = maker.lookup(IdentifierBagHandler.TAG_NAME);
156 handler.marshal(idBag,element);
157 }
158
159 CategoryBag catBag = request.getCategoryBag();
160 if (catBag != null)
161 {
162 handler = maker.lookup(CategoryBagHandler.TAG_NAME);
163 handler.marshal(catBag,element);
164 }
165
166 TModelBag tModBag = request.getTModelBag();
167 if (tModBag != null)
168 {
169 handler = maker.lookup(TModelBagHandler.TAG_NAME);
170 handler.marshal(tModBag,element);
171 }
172
173 DiscoveryURLs discURLs = request.getDiscoveryURLs();
174 if (discURLs != null)
175 {
176 handler = maker.lookup(DiscoveryURLsHandler.TAG_NAME);
177 handler.marshal(discURLs,element);
178 }
179
180 parent.appendChild(element);
181 }
182
183
184 /****************************************************************************/
185 /****************************** TEST DRIVER *********************************/
186 /****************************************************************************/
187
188
189 public static void main(String args[])
190 throws Exception
191 {
192 HandlerMaker maker = HandlerMaker.getInstance();
193 AbstractHandler handler = maker.lookup(FindBusinessHandler.TAG_NAME);
194
195 Element parent = XMLUtils.newRootElement();
196 Element child = null;
197
198 DiscoveryURLs discURLs = new DiscoveryURLs();
199 discURLs.addDiscoveryURL(new DiscoveryURL("businessEntity","http://www.sviens.com"));
200
201 IdentifierBag idBag = new IdentifierBag();
202 idBag.addKeyedReference(new KeyedReference("idBagKeyName","idBagKeyValue"));
203 idBag.addKeyedReference(new KeyedReference("uuid:3860b975-9e0c-4cec-bad6-87dfe00e3864","idBagKeyName2","idBagKeyValue2"));
204
205 CategoryBag catBag = new CategoryBag();
206 catBag.addKeyedReference(new KeyedReference("catBagKeyName","catBagKeyValue"));
207 catBag.addKeyedReference(new KeyedReference("uuid:8ff45356-acde-4a4c-86bf-f953611d20c6","catBagKeyName2","catBagKeyValue2"));
208
209 TModelBag tModBag = new TModelBag();
210 tModBag.addTModelKey("uuid:35d9793b-9911-4b85-9f0e-5d4c65b4f253");
211 tModBag.addTModelKey(new TModelKey("uuid:c5ab113f-0d6b-4247-b3c4-8c012726acd8"));
212
213 FindBusiness request = new FindBusiness();
214 request.addName(new Name("serviceNm"));
215 request.addName(new Name("serviceNm2","en"));
216 request.addFindQualifier(new FindQualifier(FindQualifier.SORT_BY_DATE_ASC));
217 request.addFindQualifier(new FindQualifier(FindQualifier.AND_ALL_KEYS));
218 request.setMaxRows(43);
219 request.setDiscoveryURLs(discURLs);
220 request.setIdentifierBag(idBag);
221 request.setTModelBag(tModBag);
222 request.setCategoryBag(catBag);
223
224 System.out.println();
225
226 RegistryObject regObject = request;
227 handler.marshal(regObject,parent);
228 child = (Element)parent.getFirstChild();
229 parent.removeChild(child);
230 XMLUtils.writeXML(child,System.out);
231
232 System.out.println();
233
234 regObject = handler.unmarshal(child);
235 handler.marshal(regObject,parent);
236 child = (Element)parent.getFirstChild();
237 parent.removeChild(child);
238 XMLUtils.writeXML(child,System.out);
239 }
240 }