Adding some base-classes to eliminate event and listener boiler-plate code throughout a number of subsystems.
Refactored all core components to take advantage of this; apps remain to be done.
Change-Id: Ib0935ba07ff81b0fa032534004ec9ac6187cbf22
diff --git a/core/api/src/main/java/org/onosproject/event/ListenerRegistry.java b/core/api/src/main/java/org/onosproject/event/ListenerRegistry.java
index e6af201..ef02af06 100644
--- a/core/api/src/main/java/org/onosproject/event/ListenerRegistry.java
+++ b/core/api/src/main/java/org/onosproject/event/ListenerRegistry.java
@@ -28,7 +28,7 @@
* listeners and dispatching events to them as part of event sink processing.
*/
public class ListenerRegistry<E extends Event, L extends EventListener<E>>
- implements EventSink<E> {
+ implements ListenerService<E, L>, EventSink<E> {
private static final long LIMIT = 1_800; // ms
@@ -42,22 +42,13 @@
*/
protected final Set<L> listeners = new CopyOnWriteArraySet<>();
-
- /**
- * Adds the specified listener.
- *
- * @param listener listener to be added
- */
+ @Override
public void addListener(L listener) {
checkNotNull(listener, "Listener cannot be null");
listeners.add(listener);
}
- /**
- * Removes the specified listener.
- *
- * @param listener listener to be removed
- */
+ @Override
public void removeListener(L listener) {
checkNotNull(listener, "Listener cannot be null");
if (!listeners.remove(listener)) {