External callbacks should be registered with db4o EventRegistry. Follow the steps below to start using your own event handlers:
Java: EventRegistry registry =
EventRegistryFactory.forObjectContainer(container);
Java: registry.created().addListener(EventListener4)
Java:
EventListener4
createdEvent = new EventListener4(){
onEvent(Event4 event, EventArgs args) {
// handling code
}
}
Java: registry.created().removeListener(createdEvent);
EventRegistry features:
For example:
01public static void testCreated(){ 02
new File(YAPFILENAME).delete(); 03
ObjectContainer db = Db4o.openFile(YAPFILENAME); 04
try { 05
EventRegistry registry = EventRegistryFactory.forObjectContainer(db); 06
// register an event handler, which will print all the car objects, that have been created 07
registry.created().addListener(new EventListener4() { 08
public void onEvent(Event4 e, EventArgs args) { 09
ObjectEventArgs queryArgs = ((ObjectEventArgs) args); 10
Object obj = queryArgs.object(); 11
if (obj instanceof Pilot){ 12
System.out.println(obj.toString()); 13
} 14
} 15
}); 16
17
Car car = new Car("BMW",new Pilot("Rubens Barrichello")); 18
db.set(car); 19
} finally { 20
db.close(); 21
} 22
}