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 * Maps ResultSet rows into JobEntryTorque objects.
17 *
18 * The skeleton for this class was autogenerated by Torque on:
19 *
20 * [Mon Mar 05 12:40:05 CET 2018]
21 *
22 */
23 public class BaseJobEntryTorqueRecordMapper implements RecordMapper<JobEntryTorque>
24 {
25
26 /** The class log. */
27 private static Log log
28 = LogFactory.getLog(BaseJobEntryTorqueRecordMapper.class);
29
30 /**
31 * Constructs the object from the current row in the resultSet.
32 *
33 * @param resultSet the resultSet to operate on, already pointing
34 * to the correct row. Not null.
35 * @param a possible offset in the columns to be considered
36 * (if previous columns contain other objects),
37 * or 0 for no offset.
38 * @param criteria The criteria which created the result set.
39 * If set, the attributes to set in the data object
40 * are determined from the select columns in the criteria;
41 * if no matching column can be found, null is returned.
42 * If not set, all of the table's columns are read from the
43 * result set in the order defined in the table definition.
44 *
45 * @return the mapped object, not null.
46 *
47 * @throws TorqueException when reading fields from the RecordSet fails
48 * or if a Criteria is passed which contains select columns other
49 * than the columns in the TURBINE_SCHEDULED_JOB table.
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 // try to get columns to be mapped
86 // from criteria's select columns
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 * Reads the value of the <code>columnIndex</code>'th column
179 * in the <code>resultSet</code> so that it can be used to set
180 * the field jobId in JobEntryTorque.
181 *
182 * @param dbObject the database object to fill, not null.
183 * @param resultSet the ResultSet to read from, not null.
184 * @param columnIndex the index in the resultSet which should be read.
185 *
186 * @return the content of the column.
187 *
188 * @throws SQLException if a problem occurs when reading
189 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
208 * in the <code>resultSet</code> so that it can be used to set
209 * the field second in JobEntryTorque.
210 *
211 * @param dbObject the database object to fill, not null.
212 * @param resultSet the ResultSet to read from, not null.
213 * @param columnIndex the index in the resultSet which should be read.
214 *
215 * @return the content of the column.
216 *
217 * @throws SQLException if a problem occurs when reading
218 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
237 * in the <code>resultSet</code> so that it can be used to set
238 * the field minute in JobEntryTorque.
239 *
240 * @param dbObject the database object to fill, not null.
241 * @param resultSet the ResultSet to read from, not null.
242 * @param columnIndex the index in the resultSet which should be read.
243 *
244 * @return the content of the column.
245 *
246 * @throws SQLException if a problem occurs when reading
247 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
266 * in the <code>resultSet</code> so that it can be used to set
267 * the field hour in JobEntryTorque.
268 *
269 * @param dbObject the database object to fill, not null.
270 * @param resultSet the ResultSet to read from, not null.
271 * @param columnIndex the index in the resultSet which should be read.
272 *
273 * @return the content of the column.
274 *
275 * @throws SQLException if a problem occurs when reading
276 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
295 * in the <code>resultSet</code> so that it can be used to set
296 * the field weekDay in JobEntryTorque.
297 *
298 * @param dbObject the database object to fill, not null.
299 * @param resultSet the ResultSet to read from, not null.
300 * @param columnIndex the index in the resultSet which should be read.
301 *
302 * @return the content of the column.
303 *
304 * @throws SQLException if a problem occurs when reading
305 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
324 * in the <code>resultSet</code> so that it can be used to set
325 * the field dayOfMonth in JobEntryTorque.
326 *
327 * @param dbObject the database object to fill, not null.
328 * @param resultSet the ResultSet to read from, not null.
329 * @param columnIndex the index in the resultSet which should be read.
330 *
331 * @return the content of the column.
332 *
333 * @throws SQLException if a problem occurs when reading
334 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
353 * in the <code>resultSet</code> so that it can be used to set
354 * the field task in JobEntryTorque.
355 *
356 * @param dbObject the database object to fill, not null.
357 * @param resultSet the ResultSet to read from, not null.
358 * @param columnIndex the index in the resultSet which should be read.
359 *
360 * @return the content of the column.
361 *
362 * @throws SQLException if a problem occurs when reading
363 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
382 * in the <code>resultSet</code> so that it can be used to set
383 * the field email in JobEntryTorque.
384 *
385 * @param dbObject the database object to fill, not null.
386 * @param resultSet the ResultSet to read from, not null.
387 * @param columnIndex the index in the resultSet which should be read.
388 *
389 * @return the content of the column.
390 *
391 * @throws SQLException if a problem occurs when reading
392 * from the resultSet.
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 * Reads the value of the <code>columnIndex</code>'th column
411 * in the <code>resultSet</code> so that it can be used to set
412 * the field property in JobEntryTorque.
413 *
414 * @param dbObject the database object to fill, not null.
415 * @param resultSet the ResultSet to read from, not null.
416 * @param columnIndex the index in the resultSet which should be read.
417 *
418 * @return the content of the column.
419 *
420 * @throws SQLException if a problem occurs when reading
421 * from the resultSet.
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 }