01: /*
02: This file is part of the PolePosition database benchmark
03: http://www.polepos.org
04:
05: This program is free software; you can redistribute it and/or
06: modify it under the terms of the GNU General Public License
07: as published by the Free Software Foundation; either version 2
08: of the License, or (at your option) any later version.
09:
10: This program is distributed in the hope that it will be useful,
11: but WITHOUT ANY WARRANTY; without even the implied warranty of
12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: GNU General Public License for more details.
14:
15: You should have received a copy of the GNU General Public
16: License along with this program; if not, write to the Free
17: Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
18: MA 02111-1307, USA. */
19:
20: package org.polepos.teams.hibernate;
21:
22: import java.util.*;
23:
24: import org.polepos.framework.*;
25:
26: import net.sf.hibernate.*;
27:
28: /**
29: * @author Herkules
30: */
31: public abstract class HibernateDriver extends Driver {
32:
33: public void takeSeatIn(Car car, TurnSetup setup)
34: throws CarMotorFailureException {
35: super .takeSeatIn(car, setup);
36: }
37:
38: public void prepare() throws CarMotorFailureException {
39: hibernateCar().openSession();
40: }
41:
42: public void backToPit() {
43: hibernateCar().closeSession();
44: }
45:
46: public HibernateCar hibernateCar() {
47: return (HibernateCar) car();
48: }
49:
50: public Session db() {
51: return hibernateCar().getSession();
52: }
53:
54: protected void doQuery(String query) {
55:
56: try {
57: Iterator it = db().iterate(query);
58: while (it.hasNext()) {
59: Object o = it.next();
60: if (o instanceof CheckSummable) {
61: addToCheckSum(((CheckSummable) o).checkSum());
62: }
63: }
64: } catch (HibernateException hex) {
65: hex.printStackTrace();
66: }
67: }
68:
69: protected void doSingleResultQuery(String query) {
70: try {
71: Iterator it = db().iterate(query);
72: Object o = (Object) it.next();
73: if (o instanceof CheckSummable) {
74: addToCheckSum(((CheckSummable) o).checkSum());
75: }
76: if (it.hasNext()) {
77: System.err
78: .println("Multiple results, expected only one.");
79: }
80: } catch (HibernateException hex) {
81: hex.printStackTrace();
82: }
83: }
84: }
|