KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > polepos > teams > db4o > ImolaDb4o


1 /*
2 This file is part of the PolePosition database benchmark
3 http://www.polepos.org
4
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
9
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.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