Add blueprint XML for bgp-parser-spi
[bgpcep.git] / bgp / parser-spi / src / main / java / org / opendaylight / controller / config / yang / bgp / parser / spi / SimpleBGPExtensionProviderContextModule.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 /**
9  * Generated file
10
11  * Generated from: yang module name: config-bgp-parser-spi  yang module local name: bgp-extensions-impl
12  * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
13  * Generated at: Mon Nov 18 10:44:24 CET 2013
14  *
15  * Do not modify this file unless it is present under src/main directory
16  */
17 package org.opendaylight.controller.config.yang.bgp.parser.spi;
18
19 import com.google.common.reflect.AbstractInvocationHandler;
20 import com.google.common.reflect.Reflection;
21 import java.lang.reflect.Method;
22 import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker;
23 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
24 import org.osgi.framework.BundleContext;
25
26 /**
27  * @deprecated Replaced by blueprint wiring
28  */
29 @Deprecated
30 public final class SimpleBGPExtensionProviderContextModule extends
31         org.opendaylight.controller.config.yang.bgp.parser.spi.AbstractSimpleBGPExtensionProviderContextModule {
32     private BundleContext bundleContext;
33
34     public SimpleBGPExtensionProviderContextModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
35             final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
36         super(identifier, dependencyResolver);
37     }
38
39     public SimpleBGPExtensionProviderContextModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
40             final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
41             final SimpleBGPExtensionProviderContextModule oldModule, final java.lang.AutoCloseable oldInstance) {
42         super(identifier, dependencyResolver, oldModule, oldInstance);
43     }
44
45     @Override
46     protected void customValidation() {
47         // Add custom validation for module attributes here.
48     }
49
50     @Override
51     public AutoCloseable createInstance() {
52         final WaitingServiceTracker<BGPExtensionProviderContext> tracker =
53                 WaitingServiceTracker.create(BGPExtensionProviderContext.class, bundleContext);
54         final BGPExtensionProviderContext service = tracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
55
56         return Reflection.newProxy(AutoCloseableBGPExtensionProviderContext.class, new AbstractInvocationHandler() {
57             @Override
58             protected Object handleInvocation(Object proxy, Method method, Object[] args) throws Throwable {
59                 if (method.getName().equals("close")) {
60                     tracker.close();
61                     return null;
62                 } else {
63                     return method.invoke(service, args);
64                 }
65             }
66         });
67     }
68
69     void setBundleContext(BundleContext bundleContext) {
70         this.bundleContext = bundleContext;
71     }
72
73     private static interface AutoCloseableBGPExtensionProviderContext extends BGPExtensionProviderContext, AutoCloseable {
74     }
75 }