Moved MD SAL from sal/yang-prototype to md-sal
[controller.git] / opendaylight / md-sal / sal-dom-api / src / main / java / org / opendaylight / controller / sal / core / api / AbstractConsumer.java
1 package org.opendaylight.controller.sal.core.api;
2
3 import java.util.Collection;
4 import java.util.Collections;
5
6 import org.osgi.framework.BundleActivator;
7 import org.osgi.framework.BundleContext;
8 import org.osgi.framework.ServiceReference;
9
10 public abstract class AbstractConsumer implements Consumer, BundleActivator {
11
12     Broker broker;
13     ServiceReference<Broker> brokerRef;
14     @Override
15     public final void start(BundleContext context) throws Exception {
16         brokerRef = context.getServiceReference(Broker.class);
17         broker = context.getService(brokerRef);
18
19         this.startImpl(context);
20
21         broker.registerConsumer(this,context);
22     }
23
24     public abstract void startImpl(BundleContext context);
25
26     @Override
27     public final void stop(BundleContext context) throws Exception {
28         broker = null;
29         if(brokerRef != null) {
30             context.ungetService(brokerRef);
31         }
32     }
33
34     
35     @Override
36     public Collection<ConsumerFunctionality> getConsumerFunctionality() {
37         return Collections.emptySet();
38     }
39
40 }