KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4odoc > f1 > uuids > UUIDExample


1 /* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com */
2
3 package com.db4odoc.f1.uuids;
4
5 import java.io.File JavaDoc;
6 import java.util.Date JavaDoc;
7
8 import com.db4o.Db4o;
9 import com.db4o.ObjectContainer;
10 import com.db4o.ObjectSet;
11 import com.db4o.YapFile;
12 import com.db4o.ext.Db4oDatabase;
13 import com.db4o.ext.Db4oUUID;
14 import com.db4o.ext.ObjectInfo;
15 import com.db4o.foundation.TimeStampIdGenerator;
16 import com.db4o.query.Query;
17 import com.db4odoc.f1.Util;
18
19
20 public class UUIDExample extends Util {
21
22
23     public static void main(String JavaDoc[] args) {
24         testChangeIdentity();
25         setObjects();
26         testGenerateUUID();
27     }
28     // end main
29

30     private static String JavaDoc printSignature(byte[] signature){
31         String JavaDoc str = "";
32          for (int i = 0; i < signature.length; i++) {
33                 str = str + signature[i];
34          }
35          return str;
36     }
37     // end printSignature
38

39     public static void testChangeIdentity(){
40         new File JavaDoc(Util.YAPFILENAME).delete();
41         ObjectContainer oc = Db4o.openFile(Util.YAPFILENAME);
42         Db4oDatabase db;
43         byte[] oldSignature;
44         byte[] newSignature;
45         try {
46             db = oc.ext().identity();
47             oldSignature = db.getSignature();
48             System.out.println("oldSignature: " + printSignature(oldSignature));
49             ((YapFile)oc).generateNewIdentity();
50         } finally {
51             oc.close();
52         }
53         oc = Db4o.openFile(Util.YAPFILENAME);
54         try {
55             db = oc.ext().identity();
56             newSignature = db.getSignature();
57             System.out.println("newSignature: " + printSignature(newSignature));
58         } finally {
59             oc.close();
60         }
61         
62         boolean same = true;
63         
64         for (int i = 0; i < oldSignature.length; i++) {
65             if(oldSignature[i] != newSignature[i]){
66                 same =false;
67             }
68         }
69         
70         if (same){
71             System.out.println("Database signatures are identical");
72         } else {
73             System.out.println("Database signatures are different");
74         }
75     }
76     // end testChangeIdentity
77

78     public static void setObjects(){
79         Db4o.configure().objectClass(Pilot.class).generateUUIDs(true);
80         new File JavaDoc(Util.YAPFILENAME).delete();
81         ObjectContainer oc = Db4o.openFile(Util.YAPFILENAME);
82         try {
83             Car car = new Car("BMW", new Pilot("Rubens Barrichello"));
84             oc.set(car);
85         } finally {
86             oc.close();
87         }
88     }
89     // end setObjects
90

91     public static void testGenerateUUID(){
92         ObjectContainer oc = Db4o.openFile(Util.YAPFILENAME);
93         try {
94             Query query = oc.query();
95             query.constrain(Car.class);
96             ObjectSet result = query.execute();
97             Car car = (Car)result.get(0);
98             ObjectInfo carInfo = oc.ext().getObjectInfo(car);
99             Db4oUUID carUUID = carInfo.getUUID();
100             System.out.println("UUID for Car class are not generated:");
101             System.out.println("Car UUID: " + carUUID);
102             
103             Pilot pilot = car.getPilot();
104             ObjectInfo pilotInfo = oc.ext().getObjectInfo(pilot);
105             Db4oUUID pilotUUID = pilotInfo.getUUID();
106             System.out.println("UUID for Pilot:");
107             System.out.println("Pilot UUID: " + pilotUUID);
108             System.out.println("long part: " + pilotUUID.getLongPart() +"; signature: " + printSignature(pilotUUID.getSignaturePart()));
109             long ms = TimeStampIdGenerator.idToMilliseconds(pilotUUID.getLongPart());
110             System.out.println("Pilot object was created: " + (new Date JavaDoc(ms)).toString());
111             Pilot pilotReturned = (Pilot) oc.ext().getByUUID(pilotUUID);
112             System.out.println("Pilot from UUID: " + pilotReturned);
113         } finally {
114             oc.close();
115         }
116     }
117     // end testGenerateUUID
118
}
119
Popular Tags