Merge "Fix for Bug 3"
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / config / yang / md / sal / binding / impl / DataBrokerImplModule.java
1 /**\r
2  * Generated file\r
3 \r
4  * Generated from: yang module name: opendaylight-sal-binding-broker-impl  yang module local name: binding-data-broker\r
5  * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator\r
6  * Generated at: Wed Nov 20 17:33:01 CET 2013\r
7  *\r
8  * Do not modify this file unless it is present under src/main directory\r
9  */\r
10 package org.opendaylight.controller.config.yang.md.sal.binding.impl;\r
11 \r
12 import java.util.concurrent.ExecutorService;\r
13 import java.util.concurrent.Executors;\r
14 import java.util.concurrent.ScheduledExecutorService;\r
15 \r
16 import org.opendaylight.controller.md.sal.common.impl.routing.AbstractDataReadRouter;\r
17 import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder;\r
18 import org.opendaylight.controller.sal.binding.impl.DataBrokerImpl;\r
19 import org.opendaylight.controller.sal.binding.impl.RootDataBrokerImpl;\r
20 import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingDomConnectorDeployer;\r
21 import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentConnector;\r
22 import org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentMappingService;\r
23 import org.opendaylight.controller.sal.binding.impl.forward.DomForwardedDataBrokerImpl;\r
24 import org.opendaylight.controller.sal.core.api.Broker;\r
25 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;\r
26 import org.opendaylight.controller.sal.core.api.data.DataProviderService;\r
27 import org.opendaylight.yangtools.yang.binding.DataObject;\r
28 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
29 import org.osgi.framework.BundleContext;\r
30 \r
31 import com.google.common.util.concurrent.MoreExecutors;\r
32 \r
33 /**\r
34 *\r
35 */\r
36 public final class DataBrokerImplModule extends\r
37         org.opendaylight.controller.config.yang.md.sal.binding.impl.AbstractDataBrokerImplModule {\r
38 \r
39     private BundleContext bundleContext;\r
40 \r
41     public DataBrokerImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,\r
42             org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {\r
43         super(identifier, dependencyResolver);\r
44     }\r
45 \r
46     public DataBrokerImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,\r
47             org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,\r
48             DataBrokerImplModule oldModule, java.lang.AutoCloseable oldInstance) {\r
49         super(identifier, dependencyResolver, oldModule, oldInstance);\r
50     }\r
51 \r
52     @Override\r
53     public void validate() {\r
54         super.validate();\r
55     }\r
56 \r
57     @Override\r
58     public java.lang.AutoCloseable createInstance() {\r
59         RootDataBrokerImpl dataBindingBroker;\r
60         \r
61         \r
62         ExecutorService listeningExecutor = SingletonHolder.getDefaultCommitExecutor();\r
63         \r
64         if (getDomBrokerDependency() != null && getMappingServiceDependency() != null) {\r
65             \r
66             dataBindingBroker = createDomConnectedBroker(listeningExecutor);\r
67         } else {\r
68             dataBindingBroker = createStandAloneBroker(listeningExecutor);\r
69         }\r
70         dataBindingBroker.registerRuntimeBean(getRootRuntimeBeanRegistratorWrapper());\r
71 \r
72         return dataBindingBroker;\r
73     }\r
74     private RootDataBrokerImpl createStandAloneBroker(ExecutorService listeningExecutor) {\r
75         RootDataBrokerImpl broker = new RootDataBrokerImpl();\r
76         broker.setExecutor(listeningExecutor);\r
77         return broker;\r
78     }\r
79 \r
80     private RootDataBrokerImpl createDomConnectedBroker(ExecutorService listeningExecutor) {\r
81         DomForwardedDataBrokerImpl forwardedBroker = new DomForwardedDataBrokerImpl();\r
82         forwardedBroker.setExecutor(listeningExecutor);\r
83         BindingIndependentConnector connector = BindingDomConnectorDeployer.createConnector(getMappingServiceDependency());\r
84         getDomBrokerDependency().registerProvider(forwardedBroker, getBundleContext());\r
85         ProviderSession domContext = forwardedBroker.getDomProviderContext();\r
86         forwardedBroker.setConnector(connector);\r
87         forwardedBroker.setDomProviderContext(domContext);\r
88         forwardedBroker.startForwarding();\r
89         return forwardedBroker;\r
90     }\r
91 \r
92     public BundleContext getBundleContext() {\r
93         return bundleContext;\r
94     }\r
95 \r
96     public void setBundleContext(BundleContext bundleContext2) {\r
97         this.bundleContext = bundleContext2;\r
98     }\r
99 }\r