1 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 31 public abstract class HibernateDriver extends Driver 32 { 33 34 public void takeSeatIn( Car car, TurnSetup setup ) 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 } 65 catch ( HibernateException hex ){ 66 hex.printStackTrace(); 67 } 68 } 69 70 protected void doSingleResultQuery(String query) { 71 try{ 72 Iterator it = db().iterate( query ); 73 Object o = (Object ) it.next(); 74 if(o instanceof CheckSummable){ 75 addToCheckSum(((CheckSummable)o).checkSum()); 76 } 77 if(it.hasNext()) { 78 System.err.println("Multiple results, expected only one."); 79 } 80 } 81 catch ( HibernateException hex ){ 82 hex.printStackTrace(); 83 } 84 } 85 } 86 | Popular Tags |