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.OverviewDoc;
22 import org.apache.juddi.datatype.RegistryObject;
23 import org.apache.juddi.datatype.binding.AccessPoint;
24 import org.apache.juddi.datatype.binding.BindingTemplate;
25 import org.apache.juddi.datatype.binding.BindingTemplates;
26 import org.apache.juddi.datatype.binding.HostingRedirector;
27 import org.apache.juddi.datatype.binding.InstanceDetails;
28 import org.apache.juddi.datatype.binding.TModelInstanceDetails;
29 import org.apache.juddi.datatype.binding.TModelInstanceInfo;
30 import org.apache.juddi.util.xml.XMLUtils;
31 import org.w3c.dom.Element;
32
33 /***
34 * @author Steve Viens (sviens@apache.org)
35 */
36 public class BindingTemplatesHandler extends AbstractHandler
37 {
38 public static final String TAG_NAME = "bindingTemplates";
39
40 private HandlerMaker maker = null;
41
42 protected BindingTemplatesHandler(HandlerMaker maker)
43 {
44 this.maker = maker;
45 }
46
47 public RegistryObject unmarshal(Element element)
48 {
49 BindingTemplates obj = new BindingTemplates();
50 Vector nodeList = null;
51 AbstractHandler handler = null;
52
53
54
55
56
57
58
59
60 nodeList = XMLUtils.getChildElementsByTagName(element,BindingTemplateHandler.TAG_NAME);
61 for (int i=0; i<nodeList.size(); i++)
62 {
63 handler = maker.lookup(BindingTemplateHandler.TAG_NAME);
64 obj.addBindingTemplate((BindingTemplate)handler.unmarshal((Element)nodeList.elementAt(i)));
65 }
66
67 return obj;
68 }
69
70 public void marshal(RegistryObject object,Element parent)
71 {
72 BindingTemplates bindings = (BindingTemplates)object;
73 String generic = getGeneric(null);
74 String namespace = getUDDINamespace(generic);
75 Element element = parent.getOwnerDocument().createElementNS(namespace,TAG_NAME);
76 AbstractHandler handler = null;
77
78 Vector bindingVector = bindings.getBindingTemplateVector();
79 if ((bindingVector!=null) && (bindingVector.size() > 0))
80 {
81 handler = maker.lookup(BindingTemplateHandler.TAG_NAME);
82 for (int i=0; i < bindingVector.size(); i++)
83 handler.marshal((BindingTemplate)bindingVector.elementAt(i),element);
84 }
85
86 parent.appendChild(element);
87 }
88
89
90 /****************************************************************************/
91 /****************************** TEST DRIVER *********************************/
92 /****************************************************************************/
93
94
95 public static void main(String args[])
96 throws Exception
97 {
98 HandlerMaker maker = HandlerMaker.getInstance();
99 AbstractHandler handler = maker.lookup(BindingTemplateHandler.TAG_NAME);
100 Element parent = XMLUtils.newRootElement();
101 Element child = null;
102
103 OverviewDoc overDoc = new OverviewDoc();
104 overDoc.setOverviewURL("http://www.sviens.com/service.html");
105 overDoc.addDescription(new Description("over-doc Descr"));
106 overDoc.addDescription(new Description("over-doc Descr Two","en"));
107
108 InstanceDetails instDetails = new InstanceDetails();
109 instDetails.addDescription(new Description("body-isa-wunder"));
110 instDetails.addDescription(new Description("sweetchild-o-mine","it"));
111 instDetails.setInstanceParms("inst-det parameters");
112 instDetails.setOverviewDoc(overDoc);
113
114 TModelInstanceInfo tModInstInfo = new TModelInstanceInfo();
115 tModInstInfo.setTModelKey("uuid:ae0f9fd4-287f-40c9-be91-df47a7c72fd9");
116 tModInstInfo.addDescription(new Description("tMod-Inst-Info"));
117 tModInstInfo.addDescription(new Description("tMod-Inst-Info too","es"));
118 tModInstInfo.setInstanceDetails(instDetails);
119
120 TModelInstanceDetails tModInstDet = new TModelInstanceDetails();
121 tModInstDet.addTModelInstanceInfo(tModInstInfo);
122
123 BindingTemplate binding = new BindingTemplate();
124 binding.setBindingKey("c9613c3c-fe55-4f34-a3da-b3167afbca4a");
125 binding.setServiceKey("997a55bc-563d-4c04-8a94-781604870d31");
126 binding.addDescription(new Description("whatever"));
127 binding.addDescription(new Description("whatever too","fr"));
128 binding.setHostingRedirector(new HostingRedirector("92658289-0bd7-443c-8948-0bb4460b44c0"));
129 binding.setAccessPoint(new AccessPoint(AccessPoint.HTTP,"http://www.sviens.com/service.wsdl"));
130 binding.setTModelInstanceDetails(tModInstDet);
131
132 BindingTemplates bindings = new BindingTemplates();
133 bindings.addBindingTemplate(binding);
134 bindings.addBindingTemplate(binding);
135
136 System.out.println();
137
138 RegistryObject regObject = bindings;
139 handler.marshal(regObject,parent);
140 child = (Element)parent.getFirstChild();
141 parent.removeChild(child);
142 XMLUtils.writeXML(child,System.out);
143
144 System.out.println();
145
146 regObject = handler.unmarshal(child);
147 handler.marshal(regObject,parent);
148 child = (Element)parent.getFirstChild();
149 parent.removeChild(child);
150 XMLUtils.writeXML(child,System.out);
151
152 System.out.println();
153 }
154 }