1 2 3 package com.db4odoc.f1.uuids; 4 5 import java.io.File ; 6 import java.util.Date ; 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 [] args) { 24 testChangeIdentity(); 25 setObjects(); 26 testGenerateUUID(); 27 } 28 30 private static String printSignature(byte[] signature){ 31 String str = ""; 32 for (int i = 0; i < signature.length; i++) { 33 str = str + signature[i]; 34 } 35 return str; 36 } 37 39 public static void testChangeIdentity(){ 40 new File (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 78 public static void setObjects(){ 79 Db4o.configure().objectClass(Pilot.class).generateUUIDs(true); 80 new File (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 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 (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 } 119 | Popular Tags |