Create an event listener

You can create as many event listener classes as you require. These classes can be in any code package and each event listener can react to the event in its own way.

Figure 1. Creating an event listener class
package curam.mypackage;

import com.google.inject.Singleton;

@Singleton
final class MyListener implements
    curam.mypackage.MyEventSource.Event {

  protected MyListener() {
    // Protected constructor for use only by Guice
  }

  @Override
  public void preDoSomething(final MyEventSource raiser) {
    System.out
        .println("preDoSomething event was raised from object "
            + raiser);

  }

  @Override
  public void postDoSomething(final MyEventSource raiser) {
    System.out
        .println("postDoSomething event was raised from object "
            + raiser);

  }

}

Note that the listener class implements the Event interface from the event source, and uses the event methods to respond to the events as required.

You have created a listener class which will listen for events raised from MyEventSource instances. However, in order for these events to be dispatched to your listener instance, you must first perform some Guice configuration.