Adding nemo engine.
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / yang / gen / v1 / urn / opendaylight / params / xml / ns / yang / nemo / engine / impl / rev151010 / NemoEngineModule.java
1 package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.impl.rev151010;
2
3 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
4 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
5 import org.opendaylight.nemo.intent.IntentResolver;
6 import org.opendaylight.nemo.user.UserManager;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9
10 public class NemoEngineModule extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.impl.rev151010.AbstractNemoEngineModule {
11     private static final Logger LOG = LoggerFactory.getLogger(NemoEngineModule.class);
12
13     public NemoEngineModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
14         super(identifier, dependencyResolver);
15     }
16
17     public NemoEngineModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, NemoEngineModule oldModule, AutoCloseable oldInstance) {
18         super(identifier, dependencyResolver, oldModule, oldInstance);
19     }
20
21     @Override
22     public void customValidation() {
23         // add custom validation form module attributes here.
24     }
25
26     @Override
27     public AutoCloseable createInstance() {
28         DataBroker dataBroker = getDataBrokerDependency();
29         RpcProviderRegistry rpcProviderRegistry = getRpcRegistryDependency();
30
31         final IntentResolver intentResolver = new IntentResolver(dataBroker);
32         final UserManager userManager = new UserManager(dataBroker, rpcProviderRegistry, intentResolver);
33
34         final class NemoEngine implements AutoCloseable {
35             @Override
36             public void close() throws Exception {
37                 if ( null != intentResolver ) {
38                     intentResolver.close();
39                 }
40
41                 if ( null != userManager ) {
42                     userManager.close();
43                 }
44
45                 return;
46             }
47         }
48
49         LOG.info("Initialized the NEMO engine.");
50
51         return new NemoEngine();
52     }
53
54 }