KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > polepos > teams > jdo > ImolaJdo


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.jdo;
21
22 import org.polepos.circuits.imola.*;
23 import org.polepos.teams.jdo.data.*;
24
25
26 public class ImolaJdo extends JdoDriver implements ImolaDriver{
27     
28     private Object JavaDoc[] oids;
29     
30     public void store() {
31         int count = setup().getObjectCount();
32         oids = new Object JavaDoc[setup().getSelectCount()];
33         begin();
34         for ( int i = 1; i <= count; i++ ){
35             storePilot(i);
36         }
37         commit();
38     }
39
40     public void retrieve() {
41         for(Object JavaDoc id: oids) {
42             JdoPilot pilot=(JdoPilot)db().getObjectById(id, false);
43             if(pilot==null) {
44                 System.err.println("Object not found by ID.");
45             }else{
46                 addToCheckSum(pilot.getPoints());
47             }
48         }
49     }
50
51     private void storePilot(int idx) {
52         JdoPilot pilot = new JdoPilot( "Pilot_" + idx, "Jonny_" + idx, idx , idx );
53         db().makePersistent( pilot );
54         
55         if(idx <= setup().getSelectCount()) {
56             oids[idx - 1] = db().getObjectId(pilot);
57         }
58         if ( isCommitPoint(idx) ){
59             db().currentTransaction().commit();
60             db().currentTransaction().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
70 }
71
Popular Tags