KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4odoc > f1 > diagnostics > DiagnosticExample


1 package com.db4odoc.f1.diagnostics;
2
3 import java.io.File JavaDoc;
4
5 import com.db4o.Db4o;
6 import com.db4o.ObjectContainer;
7 import com.db4o.ObjectSet;
8 import com.db4o.query.Query;
9 import com.db4o.diagnostic.*;
10
11
12 public class DiagnosticExample{
13     public final static String JavaDoc YAPFILENAME="formula1.yap";
14     
15     public static void main(String JavaDoc[] args){
16         testEmpty();
17         testArbitrary();
18         testIndexDiagnostics();
19         testTranslatorDiagnostics();
20     }
21     // end main
22
public static void testEmpty() {
23         Db4o.configure().diagnostic().addListener(new DiagnosticToConsole());
24         new File JavaDoc(YAPFILENAME).delete();
25         ObjectContainer db=Db4o.openFile(YAPFILENAME);
26         try {
27             setEmptyObject(db);
28         }
29         finally {
30             db.close();
31             Db4o.configure().diagnostic().removeAllListeners();
32         }
33     }
34     // end testEmpty
35

36     private static void setEmptyObject(ObjectContainer db){
37         Empty empty = new Empty();
38         db.set(empty);
39     }
40     // end setEmptyObject
41

42     public static void testArbitrary() {
43         Db4o.configure().diagnostic().addListener(new DiagnosticToConsole());
44         new File JavaDoc(YAPFILENAME).delete();
45         ObjectContainer db=Db4o.openFile(YAPFILENAME);
46         try {
47             Pilot pilot = new Pilot("Rubens Barrichello",99);
48             db.set(pilot);
49             queryPilot(db);
50         }
51         finally {
52             db.close();
53             Db4o.configure().diagnostic().removeAllListeners();
54         }
55     }
56     // end testArbitrary
57

58     private static void queryPilot(ObjectContainer db){
59         int[] i = new int[]{19,100};
60         ObjectSet result = db.query(new ArbitraryQuery(i));
61         listResult(result);
62     }
63     // end queryPilot
64

65     public static void testIndexDiagnostics() {
66         Db4o.configure().diagnostic().addListener(new IndexDiagListener());
67         Db4o.configure().updateDepth(3);
68         new File JavaDoc(YAPFILENAME).delete();
69         ObjectContainer db=Db4o.openFile(YAPFILENAME);
70         try {
71             Pilot pilot1 = new Pilot("Rubens Barrichello",99);
72             db.set(pilot1);
73             Pilot pilot2 = new Pilot("Michael Schumacher",100);
74             db.set(pilot2);
75             queryPilot(db);
76             setEmptyObject(db);
77             Query query = db.query();
78             query.constrain(Pilot.class);
79             query.descend("points").constrain(new Integer JavaDoc(99));
80             ObjectSet result = query.execute();
81             listResult(result);
82         }
83         finally {
84             db.close();
85             Db4o.configure().diagnostic().removeAllListeners();
86         }
87     }
88     // end testIndexDiagnostics
89

90     public static void testTranslatorDiagnostics() {
91         storeTranslatedCars();
92         retrieveTranslatedCars();
93         retrieveTranslatedCarsNQ();
94         retrieveTranslatedCarsNQUnopt();
95         retrieveTranslatedCarsSODAEv();
96     }
97     // end testTranslatorDiagnostics
98

99     public static void storeTranslatedCars() {
100         Db4o.configure().exceptionsOnNotStorable(true);
101         Db4o.configure().objectClass(Car.class).translate(new CarTranslator());
102         Db4o.configure().objectClass(Car.class).callConstructor(true);
103         new File JavaDoc(YAPFILENAME).delete();
104         ObjectContainer db = Db4o.openFile(YAPFILENAME);
105         try {
106             Car car1 = new Car("BMW");
107             System.out.println("ORIGINAL: " + car1);
108             db.set(car1);
109             Car car2 = new Car("Ferrari");
110             System.out.println("ORIGINAL: " + car2);
111             db.set(car2);
112         } catch (Exception JavaDoc exc) {
113             System.out.println(exc.toString());
114             return;
115         } finally {
116             db.close();
117         }
118     }
119     // end storeTranslatedCars
120

121     public static void retrieveTranslatedCars() {
122         Db4o.configure().diagnostic().addListener(new TranslatorDiagListener());
123         Db4o.configure().exceptionsOnNotStorable(true);
124         Db4o.configure().objectClass(Car.class).translate(new CarTranslator());
125         Db4o.configure().objectClass(Car.class).callConstructor(true);
126         ObjectContainer db = Db4o.openFile(YAPFILENAME);
127         try {
128             ObjectSet result = db.query(Car.class);
129             listResult(result);
130         } finally {
131             db.close();
132             Db4o.configure().diagnostic().removeAllListeners();
133         }
134     }
135     // end retrieveTranslatedCars
136

137     public static void retrieveTranslatedCarsNQ() {
138         Db4o.configure().diagnostic().addListener(new TranslatorDiagListener());
139         Db4o.configure().exceptionsOnNotStorable(true);
140         Db4o.configure().objectClass(Car.class).translate(new CarTranslator());
141         Db4o.configure().objectClass(Car.class).callConstructor(true);
142         ObjectContainer db = Db4o.openFile(YAPFILENAME);
143         try {
144             ObjectSet result = db.query(new NewCarModel());
145             listResult(result);
146         } finally {
147             db.close();
148             Db4o.configure().diagnostic().removeAllListeners();
149         }
150     }
151     // end retrieveTranslatedCarsNQ
152

153     public static void retrieveTranslatedCarsNQUnopt() {
154         Db4o.configure().optimizeNativeQueries(false);
155         Db4o.configure().diagnostic().addListener(new TranslatorDiagListener());
156         Db4o.configure().exceptionsOnNotStorable(true);
157         Db4o.configure().objectClass(Car.class).translate(new CarTranslator());
158         Db4o.configure().objectClass(Car.class).callConstructor(true);
159         ObjectContainer db = Db4o.openFile(YAPFILENAME);
160         try {
161             ObjectSet result = db.query(new NewCarModel());
162             listResult(result);
163         } finally {
164             Db4o.configure().optimizeNativeQueries(true);
165             db.close();
166             Db4o.configure().diagnostic().removeAllListeners();
167         }
168     }
169     // end retrieveTranslatedCarsNQUnopt
170

171     public static void retrieveTranslatedCarsSODAEv() {
172         Db4o.configure().diagnostic().addListener(new TranslatorDiagListener());
173         Db4o.configure().exceptionsOnNotStorable(true);
174         Db4o.configure().objectClass(Car.class).translate(new CarTranslator());
175         Db4o.configure().objectClass(Car.class).callConstructor(true);
176         ObjectContainer db = Db4o.openFile(YAPFILENAME);
177         try {
178             Query query = db.query();
179             query.constrain(Car.class);
180             query.constrain(new CarEvaluation());
181             ObjectSet result = query.execute();
182             listResult(result);
183         } finally {
184             db.close();
185             Db4o.configure().diagnostic().removeAllListeners();
186             Db4o.configure().objectClass(Car.class).translate(null);
187         }
188     }
189     // end retrieveTranslatedCarsSODAEv
190

191     public static void listResult(ObjectSet result) {
192         System.out.println(result.size());
193         while(result.hasNext()) {
194             System.out.println(result.next());
195         }
196     }
197     // end listResult
198
}
199
Popular Tags