Event Registry API

External callbacks should be registered with db4o EventRegistry. Follow the steps below to start using your own event handlers:

  1. Obtain an instance of EventRegistry object for your ObjectContainer

  2. Java: EventRegistry registry = EventRegistryFactory.forObjectContainer(container);

  3. Register the required event. For "created" event the code is the following:
  4. Java: registry.created().addListener(EventListener4)

  5. Create your own event handler:
  6. Java:

    EventListener4 createdEvent = new EventListener4(){
              onEvent(Event4 event, EventArgs args)  {
                          // handling code
              }
    }

  7. After the work is done you can unregister the events:
  8. Java: registry.created().removeListener(createdEvent);

EventRegistry features:

For example:

CallbacksExample.java: testCreated
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 }