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.GetBusinessDetail;
26 import org.apache.juddi.datatype.response.BusinessDetail;
27 import org.apache.juddi.error.InvalidKeyPassedException;
28 import org.apache.juddi.error.RegistryException;
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 GetBusinessDetailFunction extends AbstractFunction
36 {
37
38 private static Log log = LogFactory.getLog(GetBusinessDetailFunction.class);
39
40 /***
41 *
42 */
43 public GetBusinessDetailFunction(RegistryEngine registry)
44 {
45 super(registry);
46 }
47
48 /***
49 *
50 */
51 public RegistryObject execute(RegistryObject regObject)
52 throws RegistryException
53 {
54 GetBusinessDetail request = (GetBusinessDetail)regObject;
55 String generic = request.getGeneric();
56 Vector businessKeyVector = request.getBusinessKeyVector();
57
58
59 DataStore dataStore = DataStoreFactory.getDataStore();
60
61 try
62 {
63 dataStore.beginTrans();
64
65 for (int i=0; i<businessKeyVector.size(); i++)
66 {
67 String businessKey = (String)businessKeyVector.elementAt(i);
68
69
70 if ((businessKey == null) || (businessKey.length() == 0) ||
71 (!dataStore.isValidBusinessKey(businessKey)))
72 throw new InvalidKeyPassedException("get_businessDetail: "+
73 "businessKey="+businessKey);
74 }
75
76 Vector businessVector = new Vector();
77
78 for (int i=0; i<businessKeyVector.size(); i++)
79 {
80 String businessKey = (String)businessKeyVector.elementAt(i);
81 businessVector.addElement(dataStore.fetchBusiness(businessKey));
82 }
83
84 dataStore.commit();
85
86
87 BusinessDetail detail = new BusinessDetail();
88 detail.setGeneric(generic);
89 detail.setOperator(Config.getOperator());
90 detail.setBusinessEntityVector(businessVector);
91 return detail;
92 }
93 catch(InvalidKeyPassedException keyex)
94 {
95 try { dataStore.rollback(); } catch(Exception e) { }
96 log.info(keyex.getMessage());
97 throw (RegistryException)keyex;
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 dataStore.release();
114 }
115 }
116
117
118 /****************************************************************************/
119 /****************************** TEST DRIVER *********************************/
120 /****************************************************************************/
121
122
123 public static void main(String[] args)
124 {
125
126 RegistryEngine reg = new RegistryEngine();
127 reg.init();
128
129 try
130 {
131 }
132 catch (Exception ex)
133 {
134
135 ex.printStackTrace();
136 }
137 finally
138 {
139
140 reg.dispose();
141 }
142 }
143 }
144