1 19 20 package org.polepos.teams.db4o; 21 22 import org.polepos.circuits.imola.*; 23 import org.polepos.data.*; 24 25 26 public class ImolaDb4o extends Db4oDriver implements ImolaDriver { 27 28 private long[] ids; 29 30 public void store() { 31 begin(); 32 ids = new long[setup().getSelectCount()]; 33 int count = setup().getObjectCount(); 34 for (int i = 1; i <= count; i++) { 35 storePilot(i); 36 } 37 commit(); 38 } 39 40 public void retrieve() { 41 for (long id : ids) { 42 Pilot pilot = (Pilot) db().getByID(id); 43 db().activate(pilot, 1); 44 if (pilot == null) { 45 System.err.println("Object not found by ID."); 46 } else { 47 addToCheckSum(pilot.getPoints()); 48 } 49 } 50 } 51 52 private void storePilot(int idx) { 53 Pilot pilot = new Pilot("Pilot_" + idx, "Jonny_" + idx, idx, idx); 54 store(pilot); 55 if (idx <= setup().getSelectCount()) { 56 ids[idx - 1] = db().getID(pilot); 57 } 58 if (isCommitPoint(idx)) { 59 commit(); 60 begin(); 61 } 62 } 63 64 private boolean isCommitPoint(int idx) { 65 int commitInterval = setup().getCommitInterval(); 66 return commitInterval > 0 && idx % commitInterval == 0 && idx < setup().getObjectCount(); 67 } 68 } 69 | Popular Tags |