4 * Generated from: yang module name: openflow-provider-impl yang module local name: openflow-provider-impl
5 * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
6 * Generated at: Wed Apr 02 16:59:36 PDT 2014
8 * Do not modify this file unless it is present under src/main directory
10 package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326;
12 import com.google.common.base.MoreObjects;
13 import javax.management.ObjectName;
14 import org.opendaylight.openflowplugin.openflow.md.core.sal.OpenflowPluginProvider;
19 public final class ConfigurableOpenFlowProviderModule extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.AbstractConfigurableOpenFlowProviderModule {
21 private OpenflowPluginProvider pluginProvider;
24 * @param identifier module identifier
25 * @param dependencyResolver dependency resolver
27 public ConfigurableOpenFlowProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
28 super(identifier, dependencyResolver);
32 * @param identifier module identifier
33 * @param dependencyResolver dependency resolver
34 * @param oldModule old module
35 * @param oldInstance old instance
37 public ConfigurableOpenFlowProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
38 ConfigurableOpenFlowProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
40 super(identifier, dependencyResolver, oldModule, oldInstance);
44 protected void customValidation() {
45 // Add custom validation for module attributes here.
49 public java.lang.AutoCloseable createInstance() {
50 pluginProvider = new OpenflowPluginProvider();
51 pluginProvider.setDataBroker(getDataBrokerDependency());
52 pluginProvider.setNotificationService(getNotificationServiceDependency());
53 pluginProvider.setRpcRegistry(getRpcRegistryDependency());
54 pluginProvider.setSwitchConnectionProviders(getOpenflowSwitchConnectionProviderDependency());
55 pluginProvider.setEntityOwnershipService(getOwnershipServiceDependency());
56 pluginProvider.setRole(getRole());
57 pluginProvider.initialization();
58 return pluginProvider;
62 public boolean canReuseInstance(
63 AbstractConfigurableOpenFlowProviderModule oldModule) {
64 // we can reuse if only the role field changed
65 boolean noChangeExceptRole = true;
66 noChangeExceptRole &= dependencyResolver.canReuseDependency(
67 getDataBroker(), dataBrokerJmxAttribute);
68 noChangeExceptRole &= dependencyResolver.canReuseDependency(
69 getNotificationService(), notificationServiceJmxAttribute);
70 noChangeExceptRole &= dependencyResolver.canReuseDependency(
71 getRpcRegistry(), rpcRegistryJmxAttribute);
73 for (ObjectName ofSwitchProvider : getOpenflowSwitchConnectionProvider()) {
74 noChangeExceptRole &= dependencyResolver.canReuseDependency(
75 ofSwitchProvider, openflowSwitchConnectionProviderJmxAttribute);
77 return noChangeExceptRole;
81 public AutoCloseable reuseInstance(AutoCloseable oldInstance) {
82 OpenflowPluginProvider recycled = (OpenflowPluginProvider) super.reuseInstance(oldInstance);
83 // change role if different
84 recycled.fireRoleChange(MoreObjects.firstNonNull(getRole(), getRole()));