X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-binding-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fapi%2FNotificationService.java;h=8f3e1470e48e6c6a109781081193b3d35fd3f01f;hb=f1a918f69b787dd422a09e4e8fd83a1d52a72f83;hp=dd66aa67f8a78451e9c31b851987455678306ea7;hpb=69c1fa1f26d6c9130696e7916c6ebe9a9e9d635c;p=controller.git 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; *
{ModelName}Listener
interface,
* which has dispatch methods for each defined notification. Methods are invoked based on notification type (class).
*
* 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; * * *
* 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.
+ *
+ *
* 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+ * } * Thereg = service.registerNotificationListener( listener ); - *
onStart
method will be invoked when someone publishes a Start
notification and
* the onStop
method will be invoked when someone publishes a Stop
notification.
*