1 package org.apache.turbine.services.schedule;
2
3 import java.sql.ResultSet;
4 import java.sql.SQLException;
5 import java.util.List;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9 import org.apache.torque.Column;
10 import org.apache.torque.TorqueException;
11 import org.apache.torque.criteria.CriteriaInterface;
12 import org.apache.torque.om.mapper.RecordMapper;
13
14
15
16
17
18
19
20
21
22
23 public class BaseJobEntryTorqueRecordMapper implements RecordMapper<JobEntryTorque>
24 {
25
26
27 private static Log log
28 = LogFactory.getLog(BaseJobEntryTorqueRecordMapper.class);
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 public JobEntryTorque processRow(
52 ResultSet resultSet,
53 int offset,
54 CriteriaInterface<?> criteria)
55 throws TorqueException
56 {
57 JobEntryTorque jobEntryTorque = new JobEntryTorque();
58
59 try
60 {
61 jobEntryTorque.setLoading(true);
62 if (criteria == null)
63 {
64 jobEntryTorque.setJobId(
65 getJobId(resultSet, offset + 1));
66 jobEntryTorque.setSecond(
67 getSecond(resultSet, offset + 2));
68 jobEntryTorque.setMinute(
69 getMinute(resultSet, offset + 3));
70 jobEntryTorque.setHour(
71 getHour(resultSet, offset + 4));
72 jobEntryTorque.setWeekDay(
73 getWeekDay(resultSet, offset + 5));
74 jobEntryTorque.setDayOfMonth(
75 getDayOfMonth(resultSet, offset + 6));
76 jobEntryTorque.setTask(
77 getTask(resultSet, offset + 7));
78 jobEntryTorque.setEmail(
79 getEmail(resultSet, offset + 8));
80 jobEntryTorque.setProperty(
81 getProperty(resultSet, offset + 9));
82 }
83 else
84 {
85
86
87 boolean columnMapped = false;
88 int totalOffset = offset + 1;
89 List<Column> selectColumns = criteria.getSelectColumns();
90 List<Column> columnsWithoutOffset = selectColumns.subList(
91 offset,
92 selectColumns.size());
93 for (Column column : columnsWithoutOffset)
94 {
95 if (BaseJobEntryTorquePeer.JOB_ID.getSqlExpression().equals(
96 column.getSqlExpression()))
97 {
98 jobEntryTorque.setJobId(
99 getJobId(resultSet, totalOffset));
100 columnMapped = true;
101 }
102 else if (BaseJobEntryTorquePeer.SECOND.getSqlExpression().equals(
103 column.getSqlExpression()))
104 {
105 jobEntryTorque.setSecond(
106 getSecond(resultSet, totalOffset));
107 columnMapped = true;
108 }
109 else if (BaseJobEntryTorquePeer.MINUTE.getSqlExpression().equals(
110 column.getSqlExpression()))
111 {
112 jobEntryTorque.setMinute(
113 getMinute(resultSet, totalOffset));
114 columnMapped = true;
115 }
116 else if (BaseJobEntryTorquePeer.HOUR.getSqlExpression().equals(
117 column.getSqlExpression()))
118 {
119 jobEntryTorque.setHour(
120 getHour(resultSet, totalOffset));
121 columnMapped = true;
122 }
123 else if (BaseJobEntryTorquePeer.WEEK_DAY.getSqlExpression().equals(
124 column.getSqlExpression()))
125 {
126 jobEntryTorque.setWeekDay(
127 getWeekDay(resultSet, totalOffset));
128 columnMapped = true;
129 }
130 else if (BaseJobEntryTorquePeer.DAY_OF_MONTH.getSqlExpression().equals(
131 column.getSqlExpression()))
132 {
133 jobEntryTorque.setDayOfMonth(
134 getDayOfMonth(resultSet, totalOffset));
135 columnMapped = true;
136 }
137 else if (BaseJobEntryTorquePeer.TASK.getSqlExpression().equals(
138 column.getSqlExpression()))
139 {
140 jobEntryTorque.setTask(
141 getTask(resultSet, totalOffset));
142 columnMapped = true;
143 }
144 else if (BaseJobEntryTorquePeer.EMAIL.getSqlExpression().equals(
145 column.getSqlExpression()))
146 {
147 jobEntryTorque.setEmail(
148 getEmail(resultSet, totalOffset));
149 columnMapped = true;
150 }
151 else if (BaseJobEntryTorquePeer.PROPERTY.getSqlExpression().equals(
152 column.getSqlExpression()))
153 {
154 jobEntryTorque.setProperty(
155 getProperty(resultSet, totalOffset));
156 columnMapped = true;
157 }
158 totalOffset++;
159 }
160 if (!columnMapped)
161 {
162 log.debug("no columns to map found in criteria, "
163 + "returning null");
164 return null;
165 }
166 }
167 jobEntryTorque.setNew(false);
168 jobEntryTorque.setModified(false);
169 }
170 finally
171 {
172 jobEntryTorque.setLoading(false);
173 }
174 return jobEntryTorque;
175 }
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191 protected int getJobId(
192 ResultSet resultSet,
193 int columnIndex)
194 throws TorqueException
195 {
196 try
197 {
198 return resultSet.getInt(columnIndex);
199 }
200 catch (SQLException e)
201 {
202 throw new TorqueException(e);
203 }
204 }
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220 protected int getSecond(
221 ResultSet resultSet,
222 int columnIndex)
223 throws TorqueException
224 {
225 try
226 {
227 return resultSet.getInt(columnIndex);
228 }
229 catch (SQLException e)
230 {
231 throw new TorqueException(e);
232 }
233 }
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249 protected int getMinute(
250 ResultSet resultSet,
251 int columnIndex)
252 throws TorqueException
253 {
254 try
255 {
256 return resultSet.getInt(columnIndex);
257 }
258 catch (SQLException e)
259 {
260 throw new TorqueException(e);
261 }
262 }
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278 protected int getHour(
279 ResultSet resultSet,
280 int columnIndex)
281 throws TorqueException
282 {
283 try
284 {
285 return resultSet.getInt(columnIndex);
286 }
287 catch (SQLException e)
288 {
289 throw new TorqueException(e);
290 }
291 }
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307 protected int getWeekDay(
308 ResultSet resultSet,
309 int columnIndex)
310 throws TorqueException
311 {
312 try
313 {
314 return resultSet.getInt(columnIndex);
315 }
316 catch (SQLException e)
317 {
318 throw new TorqueException(e);
319 }
320 }
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336 protected int getDayOfMonth(
337 ResultSet resultSet,
338 int columnIndex)
339 throws TorqueException
340 {
341 try
342 {
343 return resultSet.getInt(columnIndex);
344 }
345 catch (SQLException e)
346 {
347 throw new TorqueException(e);
348 }
349 }
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365 protected String getTask(
366 ResultSet resultSet,
367 int columnIndex)
368 throws TorqueException
369 {
370 try
371 {
372 return resultSet.getString(columnIndex);
373 }
374 catch (SQLException e)
375 {
376 throw new TorqueException(e);
377 }
378 }
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394 protected String getEmail(
395 ResultSet resultSet,
396 int columnIndex)
397 throws TorqueException
398 {
399 try
400 {
401 return resultSet.getString(columnIndex);
402 }
403 catch (SQLException e)
404 {
405 throw new TorqueException(e);
406 }
407 }
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423 protected byte[] getProperty(
424 ResultSet resultSet,
425 int columnIndex)
426 throws TorqueException
427 {
428 try
429 {
430 byte[] value = resultSet.getBytes(columnIndex);
431 if (resultSet.wasNull())
432 {
433 value = null;
434 }
435 return value;
436 }
437 catch (SQLException e)
438 {
439 throw new TorqueException(e);
440 }
441 }
442
443
444 }