-/*
- * Copyright (c) 2014, 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-/**
- * Generated file
-
- * Generated from: yang module name: toaster-consumer-impl yang module local name: toaster-consumer-impl
- * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
- * Generated at: Wed Feb 05 11:31:30 CET 2014
- *
- * Do not modify this file unless it is present under src/main directory
- */
-package org.opendaylight.controller.config.yang.config.kitchen_service.impl;
-
-import java.util.concurrent.Future;
-import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker;
-import org.opendaylight.controller.sample.kitchen.api.EggsType;
-import org.opendaylight.controller.sample.kitchen.api.KitchenService;
-import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToastType;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.osgi.framework.BundleContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- */
-public final class KitchenServiceModule extends AbstractKitchenServiceModule {
- private static final Logger log = LoggerFactory.getLogger(KitchenServiceModule.class);
-
- private BundleContext bundleContext;
-
- public KitchenServiceModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
- super(identifier, dependencyResolver);
- }
-
- public KitchenServiceModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
- final KitchenServiceModule oldModule, final java.lang.AutoCloseable oldInstance) {
-
- super(identifier, dependencyResolver, oldModule, oldInstance);
- }
-
- @Override
- protected void customValidation(){
- // No need to validate dependencies, since all dependencies have mandatory true flag in yang
- // config-subsystem will perform the validation
- }
-
- @Override
- public AutoCloseable createInstance() {
- // The KitchenServiceImpl instance is created and advertised with the OSGi registry via blueprint
- // so obtain it here so we can return it to the config system. It's possible the blueprint container
- // hasn't been created yet so we busy wait 5 min for the service.
- final WaitingServiceTracker<KitchenService> tracker = WaitingServiceTracker.create(
- KitchenService.class, bundleContext);
- final KitchenService kitchenService = tracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
-
- final class AutoCloseableKitchenService implements KitchenService, AutoCloseable {
- @Override
- public void close() {
- // We need to close the ServiceTracker however we don't want to close the actual
- // KitchenService instance because its life-cycle is controlled via blueprint.
- tracker.close();
- log.info("KitchenService (instance {}) closed.", kitchenService);
- }
-
- @Override
- public Future<RpcResult<Void>> makeBreakfast(final EggsType eggs, final Class<? extends ToastType> toast,
- final int toastDoneness) {
- return kitchenService.makeBreakfast(eggs, toast, toastDoneness);
- }
- }
-
- return new AutoCloseableKitchenService();
- }
-
- public void setBundleContext(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
- }
-}