Merge "Added .DS_STORE and .metadata to .gitignore"
[controller.git] / opendaylight / md-sal / samples / toaster-consumer / src / main / java / org / opendaylight / controller / config / yang / config / kitchen_service / impl / KitchenServiceModule.java
1 /**
2 * Generated file
3
4 * Generated from: yang module name: toaster-consumer-impl  yang module local name: toaster-consumer-impl
5 * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
6 * Generated at: Wed Feb 05 11:31:30 CET 2014
7 *
8 * Do not modify this file unless it is present under src/main directory
9 */
10 package org.opendaylight.controller.config.yang.config.kitchen_service.impl;
11
12 import org.opendaylight.controller.config.yang.config.kitchen_service.impl.AbstractKitchenServiceModule;
13 import org.opendaylight.controller.sample.kitchen.api.EggsType;
14 import org.opendaylight.controller.sample.kitchen.api.KitchenService;
15 import org.opendaylight.controller.sample.kitchen.impl.KitchenServiceImpl;
16 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToastType;
17 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToasterService;
18 import org.opendaylight.yangtools.concepts.Registration;
19 import org.opendaylight.yangtools.yang.binding.NotificationListener;
20 import org.slf4j.Logger;
21 import org.slf4j.LoggerFactory;
22
23 /**
24 *
25 */
26 public final class KitchenServiceModule extends AbstractKitchenServiceModule {
27     private static final Logger log = LoggerFactory.getLogger(KitchenServiceModule.class);
28
29     public KitchenServiceModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
30         super(identifier, dependencyResolver);
31     }
32
33     public KitchenServiceModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
34             KitchenServiceModule oldModule, java.lang.AutoCloseable oldInstance) {
35
36         super(identifier, dependencyResolver, oldModule, oldInstance);
37     }
38
39     @Override
40     protected void customValidation(){
41         // No need to validate dependencies, since all dependencies have mandatory true flag in yang
42         // config-subsystem will perform the validation
43     }
44
45     @Override
46     public java.lang.AutoCloseable createInstance() {
47         ToasterService toasterService = getRpcRegistryDependency().getRpcService(ToasterService.class);
48
49         final KitchenServiceImpl kitchenService = new KitchenServiceImpl(toasterService);
50
51         final Registration<NotificationListener> toasterListenerReg =
52                 getNotificationServiceDependency().registerNotificationListener( kitchenService );
53
54         final KitchenServiceRuntimeRegistration runtimeReg =
55                 getRootRuntimeBeanRegistratorWrapper().register( kitchenService );
56
57         final class AutoCloseableKitchenService implements KitchenService, AutoCloseable {
58
59             @Override
60             public void close() throws Exception {
61                 toasterListenerReg.close();
62                 runtimeReg.close();
63                 log.info("Toaster consumer (instance {}) torn down.", this);
64             }
65
66             @Override
67             public boolean makeBreakfast( EggsType eggs, Class<? extends ToastType> toast, int toastDoneness ) {
68                 return kitchenService.makeBreakfast( eggs, toast, toastDoneness );
69             }
70         }
71
72         AutoCloseable ret = new AutoCloseableKitchenService();
73         log.info("KitchenService (instance {}) initialized.", ret );
74         return ret;
75     }
76 }