1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.juddi.datastore.jdbc;
17
18 import java.sql.Connection;
19 import java.sql.PreparedStatement;
20 import java.sql.ResultSet;
21 import java.sql.SQLException;
22
23 import org.apache.commons.logging.Log;
24 import org.apache.commons.logging.LogFactory;
25 import org.apache.juddi.datatype.publisher.Publisher;
26 import org.apache.juddi.registry.RegistryEngine;
27 import org.apache.juddi.util.Config;
28
29 /***
30 * @author Steve Viens (sviens@apache.org)
31 */
32 public class PublisherTable
33 {
34
35 private static Log log = LogFactory.getLog(PublisherTable.class);
36
37 static String insertSQL = null;
38 static String selectSQL = null;
39 static String deleteSQL = null;
40 static String updateSQL = null;
41 static String verifyAdminSQL = null;
42 static String tablePrefix = "";
43
44 static
45 {
46 tablePrefix = Config.getStringProperty(
47 RegistryEngine.PROPNAME_TABLE_PREFIX,RegistryEngine.DEFAULT_TABLE_PREFIX);
48
49 StringBuffer sql = null;
50
51
52 sql = new StringBuffer(150);
53 sql.append("INSERT INTO ").append(tablePrefix).append("PUBLISHER (");
54 sql.append("PUBLISHER_ID,");
55 sql.append("PUBLISHER_NAME,");
56 sql.append("EMAIL_ADDRESS,");
57 sql.append("IS_ADMIN, ");
58 sql.append("IS_ENABLED), ");
59 sql.append("MAX_BUSINESSES), ");
60 sql.append("MAX_SERVICES_PER_BUSINESS), ");
61 sql.append("MAX_BINDINGS_PER_SERVICE), ");
62 sql.append("MAX_TMODELS) ");
63 sql.append("VALUES (?,?,?,?,?,?,?,?,?)");
64 insertSQL = sql.toString();
65
66
67 sql = new StringBuffer(200);
68 sql.append("SELECT ");
69 sql.append("PUBLISHER_NAME,");
70 sql.append("EMAIL_ADDRESS,");
71 sql.append("IS_ADMIN,");
72 sql.append("IS_ENABLED,");
73 sql.append("MAX_BUSINESSES,");
74 sql.append("MAX_SERVICES_PER_BUSINESS,");
75 sql.append("MAX_BINDINGS_PER_SERVICE,");
76 sql.append("MAX_TMODELS ");
77 sql.append("FROM ").append(tablePrefix).append("PUBLISHER ");
78 sql.append("WHERE PUBLISHER_ID=?");
79 selectSQL = sql.toString();
80
81
82 sql = new StringBuffer(200);
83 sql.append("DELETE FROM ").append(tablePrefix).append("PUBLISHER ");
84 sql.append("WHERE PUBLISHER_ID=?");
85 deleteSQL = sql.toString();
86
87
88 sql = new StringBuffer(200);
89 sql.append("UPDATE ").append(tablePrefix).append("PUBLISHER ");
90 sql.append("SET PUBLISHER_NAME=?,");
91 sql.append("EMAIL_ADDRESS=?,");
92 sql.append("IS_ADMIN=?,");
93 sql.append("IS_ENABLED=?,");
94 sql.append("MAX_BUSINESSES=?,");
95 sql.append("MAX_SERVICES_PER_BUSINESS=?,");
96 sql.append("MAX_BINDINGS_PER_SERVICE=?,");
97 sql.append("MAX_TMODELS=? ");
98 sql.append("WHERE PUBLISHER_ID=?");
99 updateSQL = sql.toString();
100 }
101
102 /***
103 * Insert new row into the PUBLISHER table.
104 *
105 * @param publisher
106 * @param connection JDBC connection
107 * @throws SQLException
108 */
109 public static void insert(Publisher publisher,Connection connection)
110 throws SQLException
111 {
112 if (publisher == null)
113 return;
114
115 PreparedStatement statement = null;
116
117 try
118 {
119 statement = connection.prepareStatement(insertSQL);
120 statement.setString(1,publisher.getPublisherID());
121 statement.setString(2,publisher.getName());
122 statement.setString(3,publisher.getEmailAddress());
123 statement.setString(4,String.valueOf(publisher.isAdmin()));
124 statement.setString(5,String.valueOf(publisher.isEnabled()));
125 statement.setInt(6,publisher.getMaxBusinesses());
126 statement.setInt(7,publisher.getMaxServicesPerBusiness());
127 statement.setInt(8,publisher.getMaxBindingsPerService());
128 statement.setInt(9,publisher.getMaxTModels());
129
130 if (log.isDebugEnabled()) {
131 log.debug("insert into " + tablePrefix + "PUBLISHER table:\n\n\t" + insertSQL +
132 "\n\t PUBLISHER_ID=" + publisher.getPublisherID() +
133 "\n\t PUBLISHER_NAME=" + publisher.getName() +
134 "\n\t EMAIL_ADDRESS=" + publisher.getEmailAddress() +
135 "\n\t IS_ADMIN=" + publisher.isAdmin() +
136 "\n\t IS_ENABLED=" + publisher.isEnabled() +
137 "\n\t MAX_BUSINESSES=" + publisher.getMaxBusinesses() +
138 "\n\t MAX_SERVICES_PER_BUSINESS=" + publisher.getMaxServicesPerBusiness() +
139 "\n\t MAX_BINDINGS_PER_SERVICE=" + publisher.getMaxBindingsPerService() +
140 "\n\t MAX_TMODELS=" + publisher.getMaxTModels() + "\n");
141 }
142
143
144 statement.executeUpdate();
145 }
146 catch(SQLException sqlex)
147 {
148 log.error(sqlex.getMessage());
149 throw sqlex;
150 }
151 finally
152 {
153 try { statement.close(); } catch (Exception e) {
154 }
155 }
156
157 /***
158 * Select one row from the PUBLISHER table.
159 *
160 * @param publisherID
161 * @param connection JDBC connection
162 * @return Publisher
163 * @throws SQLException
164 */
165 public static Publisher select(String publisherID,Connection connection)
166 throws SQLException
167 {
168
169 if (publisherID == null)
170 return null;
171
172 Publisher publisher = null;
173 PreparedStatement statement = null;
174 ResultSet resultSet = null;
175
176 try
177 {
178 statement = connection.prepareStatement(selectSQL);
179 statement.setString(1,publisherID);
180
181 if (log.isDebugEnabled()) {
182 log.debug("select from " + tablePrefix + "PUBLISHER table:\n\n\t" + selectSQL +
183 "\n\t PUBLISHER_ID=" + publisherID + "\n");
184 }
185
186 resultSet = statement.executeQuery();
187 if (resultSet.next())
188 {
189 publisher = new Publisher();
190 publisher.setPublisherID(publisherID);
191 publisher.setName(resultSet.getString(1));
192 publisher.setEmailAddress(resultSet.getString(2));
193 publisher.setAdminValue(resultSet.getString(3));
194 publisher.setEnabledValue(resultSet.getString(4));
195 publisher.setMaxBusinesses(resultSet.getInt(5));
196 publisher.setMaxServicesPerBusiness(resultSet.getInt(6));
197 publisher.setMaxBindingsPerService(resultSet.getInt(7));
198 publisher.setMaxTModels(resultSet.getInt(8));
199 }
200
201 return publisher;
202 }
203 catch(SQLException sqlex)
204 {
205 log.error(sqlex.getMessage());
206 throw sqlex;
207 }
208 finally
209 {
210 try { resultSet.close(); } catch (Exception e) {
211 try { statement.close(); } catch (Exception e) {
212 }
213 }
214
215 /***
216 * Delete row from the PUBLISHER table.
217 *
218 * @param publisherID
219 * @param connection
220 * @throws SQLException
221 */
222 public static void delete(String publisherID,Connection connection)
223 throws SQLException
224 {
225 PreparedStatement statement = null;
226
227 try
228 {
229
230 statement = connection.prepareStatement(deleteSQL);
231 statement.setString(1,publisherID);
232
233 if (log.isDebugEnabled()) {
234 log.debug("delete from " + tablePrefix + "PUBLISHER table:\n\n\t" + deleteSQL +
235 "\n\t PUBLISHER_ID=" + "\n");
236 }
237
238
239 statement.executeUpdate();
240 }
241 catch(SQLException sqlex)
242 {
243 log.error(sqlex.getMessage());
244 throw sqlex;
245 }
246 finally
247 {
248 try { statement.close(); } catch (Exception e) {
249 }
250 }
251
252 /***
253 * Update the PUBLISHER table for a particular PublisherID.
254 *
255 * @param publisher
256 * @param connection JDBC connection
257 * @throws SQLException
258 */
259 public static void update(Publisher publisher,Connection connection)
260 throws SQLException
261 {
262 PreparedStatement statement = null;
263
264 try
265 {
266
267 statement = connection.prepareStatement(updateSQL);
268 statement.setString(1,publisher.getName());
269 statement.setString(2,publisher.getEmailAddress());
270 statement.setString(3,String.valueOf(publisher.isAdmin()));
271 statement.setString(4,String.valueOf(publisher.isEnabled()));
272 statement.setInt(5,publisher.getMaxBusinesses());
273 statement.setInt(6,publisher.getMaxServicesPerBusiness());
274 statement.setInt(7,publisher.getMaxBindingsPerService());
275 statement.setInt(8,publisher.getMaxTModels());
276 statement.setString(9,publisher.getPublisherID());
277
278 if (log.isDebugEnabled()) {
279 log.debug("update " + tablePrefix + "PUBLISHER table:\n\n\t" + updateSQL +
280 "\n\t PUBLISHER_NAME=" + publisher.getName() +
281 "\n\t EMAIL_ADDRESS=" + publisher.getEmailAddress() +
282 "\n\t IS_ADMIN=" + publisher.isAdmin() +
283 "\n\t IS_ENABLED=" + publisher.isEnabled() +
284 "\n\t MAX_BUSINESSES=" + publisher.getMaxBusinesses() +
285 "\n\t MAX_SERVICES_PER_BUSINESS=" + publisher.getMaxServicesPerBusiness() +
286 "\n\t MAX_BINDINGS_PER_SERVICE=" + publisher.getMaxBindingsPerService() +
287 "\n\t MAX_TMODELS=" + publisher.getMaxTModels() +
288 "\n\t PUBLISHER_ID=" + publisher.getPublisherID() + "\n");
289 }
290
291
292 statement.executeUpdate();
293 }
294 catch(SQLException sqlex)
295 {
296 log.error(sqlex.getMessage());
297 throw sqlex;
298 }
299 finally
300 {
301 try { statement.close(); } catch (Exception e) {
302 }
303 }
304 }