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.RegistryObject;
21 import org.apache.juddi.datatype.assertion.PublisherAssertion;
22 import org.apache.juddi.datatype.request.AuthInfo;
23 import org.apache.juddi.datatype.request.SetPublisherAssertions;
24 import org.apache.juddi.util.xml.XMLUtils;
25 import org.w3c.dom.Element;
26
27 /***
28 * @author Steve Viens (sviens@apache.org)
29 */
30 public class SetPublisherAssertionsHandler extends AbstractHandler
31 {
32 public static final String TAG_NAME = "set_publisherAssertions";
33
34 private HandlerMaker maker = null;
35
36 protected SetPublisherAssertionsHandler(HandlerMaker maker)
37 {
38 this.maker = maker;
39 }
40
41 public RegistryObject unmarshal(Element element)
42 {
43 SetPublisherAssertions obj = new SetPublisherAssertions();
44 Vector nodeList = null;
45 AbstractHandler handler = null;
46
47
48 String generic = element.getAttribute("generic");
49 if ((generic != null && (generic.trim().length() > 0)))
50 obj.setGeneric(generic);
51
52
53
54
55
56 nodeList = XMLUtils.getChildElementsByTagName(element,AuthInfoHandler.TAG_NAME);
57 if (nodeList.size() > 0)
58 {
59 handler = maker.lookup(AuthInfoHandler.TAG_NAME);
60 obj.setAuthInfo((AuthInfo)handler.unmarshal((Element)nodeList.elementAt(0)));
61 }
62
63 nodeList = XMLUtils.getChildElementsByTagName(element,PublisherAssertionHandler.TAG_NAME);
64 for (int i=0; i<nodeList.size(); i++)
65 {
66 handler = maker.lookup(PublisherAssertionHandler.TAG_NAME);
67 obj.addPublisherAssertion((PublisherAssertion)handler.unmarshal((Element)nodeList.elementAt(i)));
68 }
69
70 return obj;
71 }
72
73 public void marshal(RegistryObject object,Element parent)
74 {
75 SetPublisherAssertions request = (SetPublisherAssertions)object;
76 String generic = request.getGeneric();
77 generic = getGeneric(generic);
78 String namespace = getUDDINamespace(generic);
79 Element element = parent.getOwnerDocument().createElementNS(namespace,TAG_NAME);
80 AbstractHandler handler = null;
81
82 element.setAttribute("generic",generic);
83
84 AuthInfo authInfo = request.getAuthInfo();
85 if (authInfo != null)
86 {
87 handler = maker.lookup(AuthInfoHandler.TAG_NAME);
88 handler.marshal(authInfo,element);
89 }
90
91 Vector vector = request.getPublisherAssertionVector();
92 if ((vector != null) && (vector.size() > 0))
93 {
94 handler = maker.lookup(PublisherAssertionHandler.TAG_NAME);
95 for (int i=0; i<vector.size(); i++)
96 handler.marshal(((PublisherAssertion)vector.elementAt(i)),element);
97 }
98
99 parent.appendChild(element);
100 }
101
102
103 /****************************************************************************/
104 /****************************** TEST DRIVER *********************************/
105 /****************************************************************************/
106
107
108 public static void main(String args[])
109 throws Exception
110 {
111 HandlerMaker maker = HandlerMaker.getInstance();
112 AbstractHandler handler = maker.lookup(SetPublisherAssertionsHandler.TAG_NAME);
113
114 Element parent = XMLUtils.newRootElement();
115 Element child = null;
116
117 AuthInfo authInfo = new AuthInfo();
118 authInfo.setValue("6f157513-844e-4a95-a856-d257e6ba9726");
119
120 PublisherAssertion assertion = new PublisherAssertion();
121 assertion.setFromKey("3379ec11-a509-4668-9fee-19b134d0d09b");
122 assertion.setToKey("3379ec11-a509-4668-9fee-19b134d0d09b");
123 assertion.setKeyName("paKeyName");
124 assertion.setKeyValue("paKeyValue");
125 assertion.setTModelKey("uuid:3379ec11-a509-4668-9fee-19b134d0d09b");
126
127 SetPublisherAssertions service = new SetPublisherAssertions();
128 service.setAuthInfo(authInfo);
129 service.addPublisherAssertion(assertion);
130 service.addPublisherAssertion(assertion);
131
132 System.out.println();
133
134 RegistryObject regObject = service;
135 handler.marshal(regObject,parent);
136 child = (Element)parent.getFirstChild();
137 parent.removeChild(child);
138 XMLUtils.writeXML(child,System.out);
139
140 System.out.println();
141
142 regObject = handler.unmarshal(child);
143 handler.marshal(regObject,parent);
144 child = (Element)parent.getFirstChild();
145 parent.removeChild(child);
146 XMLUtils.writeXML(child,System.out);
147 }
148 }