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.publisher.Publisher;
22 import org.apache.juddi.datatype.request.AuthInfo;
23 import org.apache.juddi.datatype.request.SavePublisher;
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 SavePublisherHandler extends AbstractHandler
31 {
32 public static final String TAG_NAME = "save_publisher";
33
34 private HandlerMaker maker = null;
35
36 protected SavePublisherHandler(HandlerMaker maker)
37 {
38 this.maker = maker;
39 }
40
41 public RegistryObject unmarshal(Element element)
42 {
43 SavePublisher obj = new SavePublisher();
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,PublisherHandler.TAG_NAME);
64 for (int i=0; i<nodeList.size(); i++)
65 {
66 handler = maker.lookup(PublisherHandler.TAG_NAME);
67 obj.addPublisher((Publisher)handler.unmarshal((Element)nodeList.elementAt(i)));
68 }
69
70 return obj;
71 }
72
73 public void marshal(RegistryObject object,Element parent)
74 {
75 SavePublisher request = (SavePublisher)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.getPublisherVector();
92 if ((vector!=null) && (vector.size() > 0))
93 {
94 handler = maker.lookup(PublisherHandler.TAG_NAME);
95 for (int i=0; i<vector.size(); i++)
96 handler.marshal((Publisher)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(SavePublisherHandler.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 Publisher publisher = new Publisher();
121 publisher.setPublisherID("bcrosby");
122 publisher.setName("Bing Crosby");
123 publisher.setEmailAddress("bcrosby@juddi.org");
124 publisher.setAdmin(true);
125
126 SavePublisher request = new SavePublisher();
127 request.setAuthInfo(authInfo);
128 request.addPublisher(publisher);
129 request.addPublisher(publisher);
130
131 System.out.println();
132
133 RegistryObject regObject = request;
134 handler.marshal(regObject,parent);
135 child = (Element)parent.getFirstChild();
136 parent.removeChild(child);
137 XMLUtils.writeXML(child,System.out);
138
139 System.out.println();
140
141 regObject = handler.unmarshal(child);
142 handler.marshal(regObject,parent);
143 child = (Element)parent.getFirstChild();
144 parent.removeChild(child);
145 XMLUtils.writeXML(child,System.out);
146 }
147 }
148
149