KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4odoc > f1 > clientserver > DeepExample


1 package com.db4odoc.f1.clientserver;
2
3 import java.io.*;
4 import com.db4o.*;
5 import com.db4odoc.f1.*;
6
7
8 public class DeepExample {
9     public static void main(String JavaDoc[] args) {
10         new File(Util.YAPFILENAME).delete();
11         ObjectContainer db=Db4o.openFile(Util.YAPFILENAME);
12         try {
13             storeCar(db);
14             db.close();
15             setCascadeOnUpdate();
16             db=Db4o.openFile(Util.YAPFILENAME);
17             takeManySnapshots(db);
18             db.close();
19             db=Db4o.openFile(Util.YAPFILENAME);
20             retrieveAllSnapshots(db);
21             db.close();
22             db=Db4o.openFile(Util.YAPFILENAME);
23             retrieveSnapshotsSequentially(db);
24             retrieveSnapshotsSequentiallyImproved(db);
25             db.close();
26             setActivationDepth();
27             db=Db4o.openFile(Util.YAPFILENAME);
28             retrieveSnapshotsSequentially(db);
29         }
30         finally {
31             db.close();
32         }
33     }
34     // end main
35

36     public static void storeCar(ObjectContainer db) {
37         Pilot pilot=new Pilot("Rubens Barrichello",99);
38         Car car=new Car("BMW");
39         car.setPilot(pilot);
40         db.set(car);
41     }
42     // end storeCar
43

44     public static void setCascadeOnUpdate() {
45         Db4o.configure().objectClass(Car.class).cascadeOnUpdate(true);
46     }
47     // end setCascadeOnUpdate
48

49     public static void takeManySnapshots(ObjectContainer db) {
50         ObjectSet result=db.get(Car.class);
51         Car car=(Car)result.next();
52         for(int i=0;i<5;i++) {
53             car.snapshot();
54         }
55         db.set(car);
56     }
57     // end takeManySnapshots
58

59     public static void retrieveAllSnapshots(ObjectContainer db) {
60         ObjectSet result=db.get(SensorReadout.class);
61         while(result.hasNext()) {
62             System.out.println(result.next());
63         }
64     }
65     // end retrieveAllSnapshots
66

67     public static void retrieveSnapshotsSequentially(ObjectContainer db) {
68         ObjectSet result=db.get(Car.class);
69         Car car=(Car)result.next();
70         SensorReadout readout=car.getHistory();
71         while(readout!=null) {
72             System.out.println(readout);
73             readout=readout.getNext();
74         }
75     }
76     // end retrieveSnapshotsSequentially
77

78     public static void retrieveSnapshotsSequentiallyImproved(ObjectContainer db) {
79         ObjectSet result=db.get(Car.class);
80         Car car=(Car)result.next();
81         SensorReadout readout=car.getHistory();
82         while(readout!=null) {
83             db.activate(readout,1);
84             System.out.println(readout);
85             readout=readout.getNext();
86         }
87     }
88     // end retrieveSnapshotsSequentiallyImproved
89

90     public static void setActivationDepth() {
91         Db4o.configure().objectClass(TemperatureSensorReadout.class)
92                 .cascadeOnActivate(true);
93     }
94     // end setActivationDepth
95
}
96
Popular Tags