Merge "Devices dashlet show port total numbers, modal shows collapsible list Replaced...
[controller.git] / opendaylight / sal / yang-prototype / sal / sal-binding-broker-impl / src / main / java / org / opendaylight / controller / sal / binding / impl / NotificationServiceImpl.xtend
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.controller.sal.binding.impl
9
10 import org.opendaylight.controller.sal.binding.api.NotificationService
11 import org.opendaylight.controller.sal.binding.api.NotificationListener
12 import org.opendaylight.yangtools.yang.binding.Notification
13 import com.google.common.collect.Multimap
14 import com.google.common.collect.HashMultimap
15
16 class NotificationServiceImpl implements NotificationService {
17     val Multimap<Class<? extends Notification>, NotificationListener<?>> listeners;
18
19     new() {
20         listeners = HashMultimap.create()
21     }
22
23     override <T extends Notification> addNotificationListener(Class<T> notificationType,
24         NotificationListener<T> listener) {
25         listeners.put(notificationType, listener)
26     }
27
28     override <T extends Notification> removeNotificationListener(Class<T> notificationType,
29         NotificationListener<T> listener) {
30         listeners.remove(notificationType, listener)
31     }
32
33 }