View Javadoc

1   /*
2    * Copyright 2001-2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
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      // Attributes
72  
73      // Text Node Value
74      // {none}
75  
76      // Child Elements
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 }