1 19 20 package org.polepos.teams.db4o; 21 22 import org.polepos.framework.*; 23 24 import com.db4o.*; 25 import com.db4o.ext.*; 26 import com.db4o.query.*; 27 28 29 32 public abstract class Db4oDriver extends Driver{ 33 34 private ExtObjectContainer mDB; 35 36 public void takeSeatIn( Car car , TurnSetup setup) throws CarMotorFailureException{ 37 super.takeSeatIn(car, setup); 38 ((Db4oCar)car).initialize(); 39 } 40 41 public void prepare(){ 42 mDB = ((Db4oCar)car()).createObjectContainer(); 43 } 44 45 public void backToPit(){ 46 mDB.close(); 47 48 try { 50 Thread.sleep(500); 51 } catch (InterruptedException e) { 52 e.printStackTrace(); 53 } 54 } 55 56 public ExtObjectContainer db(){ 57 return mDB; 58 } 59 60 protected void doQuery( Query q ){ 61 ObjectSet result = q.execute(); 62 while ( result.hasNext() ){ 63 Object o = result.next(); 64 if(o instanceof CheckSummable){ 65 addToCheckSum(((CheckSummable)o).checkSum()); 66 } 67 } 68 } 69 70 protected void readExtent(Class clazz){ 71 Query q = db().query(); 72 q.constrain(clazz); 73 doQuery(q); 74 } 75 76 protected void begin(){ 77 } 80 81 protected void commit(){ 82 mDB.commit(); 83 } 84 85 protected void store(Object obj){ 86 mDB.set(obj); 87 } 88 } 89 | Popular Tags |