KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4o > f1 > chapter5 > DeepExample


1 package com.db4o.f1.chapter5;
2
3 import java.io.*;
4 import com.db4o.*;
5 import com.db4o.f1.*;
6
7
8 public class DeepExample extends Util {
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
35     public static void storeCar(ObjectContainer db) {
36         Pilot pilot=new Pilot("Rubens Barrichello",99);
37         Car car=new Car("BMW");
38         car.setPilot(pilot);
39         db.set(car);
40     }
41
42     public static void setCascadeOnUpdate() {
43         Db4o.configure().objectClass(Car.class).cascadeOnUpdate(true);
44     }
45     
46     public static void takeManySnapshots(ObjectContainer db) {
47         ObjectSet result=db.get(Car.class);
48         Car car=(Car)result.next();
49         for(int i=0;i<5;i++) {
50             car.snapshot();
51         }
52         db.set(car);
53     }
54     
55     public static void retrieveAllSnapshots(ObjectContainer db) {
56         ObjectSet result=db.get(SensorReadout.class);
57         while(result.hasNext()) {
58             System.out.println(result.next());
59         }
60     }
61
62     public static void retrieveSnapshotsSequentially(
63             ObjectContainer db) {
64         ObjectSet result=db.get(Car.class);
65         Car car=(Car)result.next();
66         SensorReadout readout=car.getHistory();
67         while(readout!=null) {
68             System.out.println(readout);
69             readout=readout.getNext();
70         }
71     }
72     
73     public static void retrieveSnapshotsSequentiallyImproved(
74             ObjectContainer db) {
75         ObjectSet result=db.get(Car.class);
76         Car car=(Car)result.next();
77         SensorReadout readout=car.getHistory();
78         while(readout!=null) {
79             db.activate(readout,1);
80             System.out.println(readout);
81             readout=readout.getNext();
82         }
83     }
84     
85     public static void setActivationDepth() {
86         Db4o.configure().objectClass(TemperatureSensorReadout.class)
87                 .cascadeOnActivate(true);
88     }
89 }
90
Popular Tags