X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fapi%2FNotificationService.java;h=8f3e1470e48e6c6a109781081193b3d35fd3f01f;hp=dd66aa67f8a78451e9c31b851987455678306ea7;hb=f1a918f69b787dd422a09e4e8fd83a1d52a72f83;hpb=9c34ce103df5efac991297dc25a64c9b8d6019f3 diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/NotificationService.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/NotificationService.java index dd66aa67f8..8f3e1470e4 100644 --- a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/NotificationService.java +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/NotificationService.java @@ -20,15 +20,19 @@ import org.opendaylight.yangtools.yang.binding.Notification; *
  • Dispatch listener - listener, which implements {ModelName}Listener interface, * which has dispatch methods for each defined notification. Methods are invoked based on notification type (class). *
  • + * * *

    Generic Listener

    + * *

    * A generic listener implements the {@link NotificationListener} interface which has one callback method * onNotification that is invoked for any notification type the listener is subscribed to. + * *

    * A generic listener is subscribed using the {@link #registerNotificationListener(Class, NotificationListener)} * method by which you specify the type of notification to receive. A generic listener may be registered for * multiple notification types via multiple subscriptions. + * *

    * Generic listeners allow for a more flexible approach, allowing you to subscribe for just * one type of notification from a YANG model. You could also have a general subscription @@ -38,20 +42,22 @@ import org.opendaylight.yangtools.yang.binding.Notification; * * *

    Dispatch Listener

    + * *

    * A dispatch listener implements a YANG-generated module interface {ModuleName}Listener * which handles all the notifications defined in the YANG model. Each notification type translates to * a specific method of the form on{NotificationType} on the generated interface. * The generated interface also extends the * {@link org.opendaylight.yangtools.yang.binding.NotificationListener} interface and implementations - * are registered using {@link #registerNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener)} - * method. + * are registered using + * {@link #registerNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener)} method. + * + *

    Dispatch Listener Example

    * - *
    Dispatch Listener Example
    *

    * Lets assume we have following YANG model: * - *

    + * {@code
      * module example {
      *      ...
      *
    @@ -63,17 +69,18 @@ import org.opendaylight.yangtools.yang.binding.Notification;
      *           ...
      *      }
      * }
    - * 
    + * } * + *

    * The generated interface will be: - *

    + * {@code
      *  public interface ExampleListener extends NotificationListener {
      *      void onStart(Start notification);
      *      void onStop(Stop notification);
      *  }
    - * 
    + * } * The following defines an implementation of the generated interface: - *
    + * {@code
      *  public class MyExampleListener implements ExampleListener {
      *      public void onStart(Start notification) {
      *          // do something
    @@ -83,12 +90,12 @@ import org.opendaylight.yangtools.yang.binding.Notification;
      *          // do something
      *      }
      *  }
    - * 
    + * } * The implementation is registered as follows: - *
    + * {@code
      *  MyExampleListener listener = new MyExampleListener();
      *  ListenerRegistration reg = service.registerNotificationListener( listener );
    - * 
    + * } * The onStart method will be invoked when someone publishes a Start notification and * the onStop method will be invoked when someone publishes a Stop notification. *