fb35ee377914c299e3aba27eff5d5359250204f8
[controller.git] / opendaylight / md-sal / sal-binding-broker / 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 }