1fc1f3af0b243f96297b44ceddb28c08a17253a5
[toolkit.git] / main / archetypes / archetype-md-sal-app-simple / src / main / resources / archetype-resources / generate / src / main / template / consumer / consumerModule.vm
1 package org.opendaylight.controller.config.yang.config.${app}_consumer.impl;
2
3 import ${package}.consumer.${capitalApp}ConsumerImpl;
4 import ${package}.consumer.${capitalApp}ConsumerService;
5 import org.opendaylight.controller.config.spi.Module;
6 import org.opendaylight.yang.gen.v1.opendaylight.sample.rev140407.${capitalApp}Service;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9
10 import java.util.Map;
11
12 public class ${capitalApp}ConsumerModule extends org.opendaylight.controller.config.yang.config.${app}_consumer.impl.Abstract${capitalApp}ConsumerModule {
13     private static final Logger log = LoggerFactory.getLogger(${capitalApp}ConsumerModule.class);
14
15     public ${capitalApp}ConsumerModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
16         super(identifier, dependencyResolver);
17     }
18
19     public ${capitalApp}ConsumerModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.${app}_consumer.impl.${capitalApp}ConsumerModule oldModule, AutoCloseable oldInstance) {
20         super(identifier, dependencyResolver, oldModule, oldInstance);
21     }
22
23     @Override
24     public void customValidation() {
25         // add custom validation form module attributes here.
26     }
27
28     @Override
29     public AutoCloseable createInstance() {
30         ${capitalApp}Service service = getRpcRegistryDependency().getRpcService(${capitalApp}Service.class);
31
32         final ${capitalApp}ConsumerImpl consumerImpl = new ${capitalApp}ConsumerImpl(service);
33
34
35         final class AutoCloseableService implements ${capitalApp}ConsumerService, AutoCloseable {
36
37             @Override
38             public void close() throws Exception {
39                 log.info("${capitalApp}ConsumerService (instance {}) torn down.", this);
40             }
41
42             @Override
43             public void createEntry(Map<String, String> data) {
44                 consumerImpl.createEntry(data);
45             }
46         }
47
48         AutoCloseable ret = new AutoCloseableService();
49         log.info("${capitalApp}ConsumerService (instance {}) initialized.", ret );
50         return ret;
51     }
52
53     @Override
54     public boolean canReuse(Module m){
55         return true;
56     }
57
58 }