1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.juddi.function;
17
18 import java.util.Vector;
19
20 import org.apache.commons.logging.Log;
21 import org.apache.commons.logging.LogFactory;
22 import org.apache.juddi.datastore.DataStore;
23 import org.apache.juddi.datastore.DataStoreFactory;
24 import org.apache.juddi.datatype.RegistryObject;
25 import org.apache.juddi.datatype.request.GetPublisherDetail;
26 import org.apache.juddi.datatype.response.PublisherDetail;
27 import org.apache.juddi.error.RegistryException;
28 import org.apache.juddi.error.UnknownUserException;
29 import org.apache.juddi.registry.RegistryEngine;
30 import org.apache.juddi.util.Config;
31
32 /***
33 * @author Steve Viens (sviens@apache.org)
34 */
35 public class GetPublisherDetailFunction extends AbstractFunction
36 {
37
38 private static Log log = LogFactory.getLog(GetPublisherDetailFunction.class);
39
40 /***
41 *
42 */
43 public GetPublisherDetailFunction(RegistryEngine registry)
44 {
45 super(registry);
46 }
47
48 /***
49 *
50 */
51 public RegistryObject execute(RegistryObject regObject)
52 throws RegistryException
53 {
54 GetPublisherDetail request = (GetPublisherDetail)regObject;
55 String generic = request.getGeneric();
56 Vector idVector = request.getPublisherIDVector();
57
58
59 DataStore dataStore = DataStoreFactory.getDataStore();
60
61 try
62 {
63 dataStore.beginTrans();
64
65 for (int i=0; i<idVector.size(); i++)
66 {
67 String publisherID = (String)idVector.elementAt(i);
68
69
70 if ((publisherID == null) || (publisherID.length() == 0) ||
71 (dataStore.getPublisher(publisherID) == null))
72 throw new UnknownUserException("get_publisher: "+
73 "userID="+publisherID);
74 }
75
76 Vector publisherVector = new Vector();
77
78 for (int i=0; i<idVector.size(); i++)
79 {
80 String publisherID = (String)idVector.elementAt(i);
81 publisherVector.add(dataStore.getPublisher(publisherID));
82 }
83
84 dataStore.commit();
85
86
87 PublisherDetail detail = new PublisherDetail();
88 detail.setGeneric(generic);
89 detail.setPublisherVector(publisherVector);
90 detail.setOperator(Config.getOperator());
91 return detail;
92 }
93 catch(UnknownUserException ukuex)
94 {
95 try { dataStore.rollback(); } catch(Exception e) { }
96 log.info(ukuex.getMessage());
97 throw (RegistryException)ukuex;
98 }
99 catch(RegistryException regex)
100 {
101 try { dataStore.rollback(); } catch(Exception e) { }
102 log.error(regex);
103 throw (RegistryException)regex;
104 }
105 catch(Exception ex)
106 {
107 try { dataStore.rollback(); } catch(Exception e) { }
108 log.error(ex);
109 throw new RegistryException(ex);
110 }
111 finally
112 {
113 if (dataStore != null)
114 dataStore.release();
115 }
116
117 }
118
119
120 /****************************************************************************/
121 /****************************** TEST DRIVER *********************************/
122 /****************************************************************************/
123
124
125 public static void main(String[] args)
126 {
127
128 RegistryEngine reg = new RegistryEngine();
129 reg.init();
130
131 try
132 {
133 }
134 catch (Exception ex)
135 {
136
137 ex.printStackTrace();
138 }
139 finally
140 {
141
142 reg.dispose();
143 }
144 }
145 }