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.Address;
21 import org.apache.juddi.datatype.AddressLine;
22 import org.apache.juddi.datatype.CategoryBag;
23 import org.apache.juddi.datatype.Description;
24 import org.apache.juddi.datatype.DiscoveryURL;
25 import org.apache.juddi.datatype.DiscoveryURLs;
26 import org.apache.juddi.datatype.Email;
27 import org.apache.juddi.datatype.IdentifierBag;
28 import org.apache.juddi.datatype.KeyedReference;
29 import org.apache.juddi.datatype.Name;
30 import org.apache.juddi.datatype.OverviewDoc;
31 import org.apache.juddi.datatype.Phone;
32 import org.apache.juddi.datatype.RegistryObject;
33 import org.apache.juddi.datatype.binding.AccessPoint;
34 import org.apache.juddi.datatype.binding.BindingTemplate;
35 import org.apache.juddi.datatype.binding.BindingTemplates;
36 import org.apache.juddi.datatype.binding.HostingRedirector;
37 import org.apache.juddi.datatype.binding.InstanceDetails;
38 import org.apache.juddi.datatype.binding.TModelInstanceDetails;
39 import org.apache.juddi.datatype.binding.TModelInstanceInfo;
40 import org.apache.juddi.datatype.business.BusinessEntity;
41 import org.apache.juddi.datatype.business.BusinessEntityExt;
42 import org.apache.juddi.datatype.business.Contact;
43 import org.apache.juddi.datatype.business.Contacts;
44 import org.apache.juddi.datatype.service.BusinessService;
45 import org.apache.juddi.datatype.service.BusinessServices;
46 import org.apache.juddi.util.xml.XMLUtils;
47 import org.w3c.dom.Element;
48
49 /***
50 * BusinessEntityExtHandler
51 *
52 * @author Steve Viens (sviens@apache.org)
53 */
54 public class BusinessEntityExtHandler extends AbstractHandler
55 {
56 public static final String TAG_NAME = "businessEntityExt";
57
58 private HandlerMaker maker = null;
59
60 protected BusinessEntityExtHandler(HandlerMaker maker)
61 {
62 this.maker = maker;
63 }
64
65 public RegistryObject unmarshal(Element element)
66 {
67 BusinessEntityExt obj = new BusinessEntityExt();
68 Vector nodeList = null;
69 AbstractHandler handler = null;
70
71
72
73
74
75
76
77 nodeList = XMLUtils.getChildElementsByTagName(element,BusinessEntityHandler.TAG_NAME);
78 if (nodeList.size() > 0)
79 {
80 handler = maker.lookup(BusinessEntityHandler.TAG_NAME);
81 obj.setBusinessEntity((BusinessEntity)handler.unmarshal((Element)nodeList.elementAt(0)));
82 }
83
84 return obj;
85 }
86
87 public void marshal(RegistryObject object,Element parent)
88 {
89 BusinessEntityExt businessExt = (BusinessEntityExt)object;
90 String generic = getGeneric(null);
91 String namespace = getUDDINamespace(generic);
92 Element element = parent.getOwnerDocument().createElementNS(namespace,TAG_NAME);
93 AbstractHandler handler = null;
94
95 BusinessEntity business = businessExt.getBusinessEntity();
96 if (business != null)
97 {
98 handler = maker.lookup(BusinessEntityHandler.TAG_NAME);
99 handler.marshal(business,element);
100 }
101
102 parent.appendChild(element);
103 }
104
105
106 /****************************************************************************/
107 /****************************** TEST DRIVER *********************************/
108 /****************************************************************************/
109
110
111 public static void main(String args[])
112 throws Exception
113 {
114 HandlerMaker maker = HandlerMaker.getInstance();
115 AbstractHandler handler = maker.lookup(BusinessEntityExtHandler.TAG_NAME);
116 Element parent = XMLUtils.newRootElement();
117 Element child = null;
118
119 OverviewDoc overDoc = new OverviewDoc();
120 overDoc.setOverviewURL("http://www.sviens.com/service.html");
121 overDoc.addDescription(new Description("over-doc Descr"));
122 overDoc.addDescription(new Description("over-doc Descr Two","en"));
123
124 InstanceDetails instDetails = new InstanceDetails();
125 instDetails.addDescription(new Description("body-isa-wunder"));
126 instDetails.addDescription(new Description("sweetchild-o-mine","it"));
127 instDetails.setInstanceParms("inst-det parameters");
128 instDetails.setOverviewDoc(overDoc);
129
130 TModelInstanceInfo tModInstInfo = new TModelInstanceInfo();
131 tModInstInfo.setTModelKey("uuid:ae0f9fd4-287f-40c9-be91-df47a7c72fd9");
132 tModInstInfo.addDescription(new Description("tMod-Inst-Info"));
133 tModInstInfo.addDescription(new Description("tMod-Inst-Info too","es"));
134 tModInstInfo.setInstanceDetails(instDetails);
135
136 TModelInstanceDetails tModInstDet = new TModelInstanceDetails();
137 tModInstDet.addTModelInstanceInfo(tModInstInfo);
138
139 BindingTemplate binding = new BindingTemplate();
140 binding.setBindingKey("c9613c3c-fe55-4f34-a3da-b3167afbca4a");
141 binding.setServiceKey("997a55bc-563d-4c04-8a94-781604870d31");
142 binding.addDescription(new Description("whatever"));
143 binding.addDescription(new Description("whatever too","fr"));
144 binding.setHostingRedirector(new HostingRedirector("92658289-0bd7-443c-8948-0bb4460b44c0"));
145 binding.setAccessPoint(new AccessPoint(AccessPoint.HTTP,"http://www.sviens.com/service.wsdl"));
146 binding.setTModelInstanceDetails(tModInstDet);
147
148 BindingTemplates bindings = new BindingTemplates();
149 bindings.addBindingTemplate(binding);
150
151 CategoryBag catBag = new CategoryBag();
152 catBag.addKeyedReference(new KeyedReference("catBagKeyName","catBagKeyValue"));
153 catBag.addKeyedReference(new KeyedReference("uuid:dfddb58c-4853-4a71-865c-f84509017cc7","catBagKeyName2","catBagKeyValue2"));
154
155 IdentifierBag idBag = new IdentifierBag();
156 idBag.addKeyedReference(new KeyedReference("idBagKeyName","idBagkeyValue"));
157 idBag.addKeyedReference(new KeyedReference("uuid:f78a135a-4769-4e79-8604-54d440314bc0","idBagKeyName2","idBagkeyValue2"));
158
159 DiscoveryURLs discURLs = new DiscoveryURLs();
160 discURLs.addDiscoveryURL(new DiscoveryURL("http","http://www.sviens.com/service.wsdl"));
161 discURLs.addDiscoveryURL(new DiscoveryURL("https","https://www.sviens.com/service.wsdl"));
162 discURLs.addDiscoveryURL(new DiscoveryURL("smtp","servicemngr@sviens.com"));
163
164 Address address = new Address();
165 address.setUseType("myAddressUseType");
166 address.setSortCode("sortThis");
167 address.setTModelKey(null);
168 address.addAddressLine(new AddressLine("AddressLine1","keyNameAttr","keyValueAttr"));
169 address.addAddressLine(new AddressLine("AddressLine2"));
170
171 Contact contact = new Contact();
172 contact.setUseType("myAddressUseType");
173 contact.setPersonNameValue("Bob Whatever");
174 contact.addDescription(new Description("Bob is a big fat jerk"));
175 contact.addDescription(new Description("obBay sIay a igBay atFay erkJay","es"));
176 contact.addEmail(new Email("bob@whatever.com"));
177 contact.addPhone(new Phone("(603)559-1901"));
178 contact.addAddress(address);
179
180 Contacts contacts = new Contacts();
181 contacts.addContact(contact);
182
183 BusinessService service = new BusinessService();
184 service.setServiceKey("fe8af00d-3a2c-4e05-b7ca-95a1259aad4f");
185 service.setBusinessKey("b8cc7266-9eed-4675-b621-34697f252a77");
186 service.setBindingTemplates(bindings);
187 service.setCategoryBag(catBag);
188 service.addName(new Name("serviceNm"));
189 service.addName(new Name("serviceNm2","en"));
190 service.addDescription(new Description("service whatever"));
191 service.addDescription(new Description("service whatever too","it"));
192
193 BusinessServices services = new BusinessServices();
194 services.addBusinessService(service);
195 services.addBusinessService(service);
196
197 BusinessEntity business = new BusinessEntity();
198 business.setBusinessKey("6c0ac186-d36b-4b81-bd27-066a5fe0fc1f");
199 business.setAuthorizedName("Steve Viens");
200 business.setOperator("jUDDI");
201 business.addName(new Name("businessNm"));
202 business.addName(new Name("businessNm2","en"));
203 business.addDescription(new Description("business whatever"));
204 business.addDescription(new Description("business whatever too","fr"));
205 business.setDiscoveryURLs(discURLs);
206 business.setCategoryBag(catBag);
207 business.setIdentifierBag(idBag);
208 business.setContacts(contacts);
209 business.setBusinessServices(services);
210
211 BusinessEntityExt businessExt = new BusinessEntityExt();
212 businessExt.setBusinessEntity(business);
213
214 System.out.println();
215
216 RegistryObject regObject = businessExt;
217 handler.marshal(regObject,parent);
218 child = (Element)parent.getFirstChild();
219 parent.removeChild(child);
220 XMLUtils.writeXML(child,System.out);
221
222 System.out.println();
223
224 regObject = handler.unmarshal(child);
225 handler.marshal(regObject,parent);
226 child = (Element)parent.getFirstChild();
227 parent.removeChild(child);
228 XMLUtils.writeXML(child,System.out);
229 }
230 }