Added missing validations.
[bgpcep.git] / pcep / tunnel-provider-config / src / main / java / org / opendaylight / controller / config / yang / pcep / tunnel / provider / PCEPTunnelTopologyProviderModule.java
1 /**
2  * Generated file
3
4  * Generated from: yang module name: config-pcep-tunnel-provider  yang module local name: pcep-tunnel-topology-impl
5  * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
6  * Generated at: Tue Nov 19 04:23:38 CET 2013
7  *
8  * Do not modify this file unless it is present under src/main directory
9  */
10 package org.opendaylight.controller.config.yang.pcep.tunnel.provider;
11
12 import org.opendaylight.bgpcep.pcep.tunnel.provider.PCEPTunnelTopologyProvider;
13 import org.opendaylight.bgpcep.pcep.tunnel.provider.TunnelProgramming;
14 import org.opendaylight.bgpcep.topology.DefaultTopologyReference;
15 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
16 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.NetworkTopologyPcepService;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.programming.rev131030.TopologyTunnelPcepProgrammingService;
19 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
20 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
21
22 /**
23  *
24  */
25 public final class PCEPTunnelTopologyProviderModule extends org.opendaylight.controller.config.yang.pcep.tunnel.provider.AbstractPCEPTunnelTopologyProviderModule
26 {
27
28         public PCEPTunnelTopologyProviderModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
29                 super(identifier, dependencyResolver);
30         }
31
32         public PCEPTunnelTopologyProviderModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, final PCEPTunnelTopologyProviderModule oldModule, final java.lang.AutoCloseable oldInstance) {
33                 super(identifier, dependencyResolver, oldModule, oldInstance);
34         }
35
36         @Override
37         public void validate(){
38                 super.validate();
39                 JmxAttributeValidationException.checkNotNull(getTopologyId(),
40                                 "is not set.", topologyIdJmxAttribute);
41         }
42
43         @Override
44         public java.lang.AutoCloseable createInstance() {
45                 final PCEPTunnelTopologyProvider ttp = PCEPTunnelTopologyProvider.create(getDataProviderDependency(), getSourceTopologyDependency().getInstanceIdentifier(), getTopologyId());
46                 final NetworkTopologyPcepService ntps = getRpcRegistryDependency().getRpcService(NetworkTopologyPcepService.class);
47                 final TunnelProgramming tp = new TunnelProgramming(getSchedulerDependency(), getDataProviderDependency(), ntps);
48                 final RpcRegistration<TopologyTunnelPcepProgrammingService> reg =
49                                 getRpcRegistryDependency().addRpcImplementation(TopologyTunnelPcepProgrammingService.class, tp);
50
51                 final class TunnelTopologyReferenceCloseable extends DefaultTopologyReference implements AutoCloseable {
52                         public TunnelTopologyReferenceCloseable(final InstanceIdentifier<Topology> instanceIdentifier) {
53                                 super(instanceIdentifier);
54                         }
55
56                         @Override
57                         public void close() throws Exception {
58                                 try {
59                                         reg.close();
60                                 } finally {
61                                         try {
62                                                 tp.close();
63                                         } finally {
64                                                 ttp.close();
65                                         }
66                                 }
67                         }
68                 }
69
70                 return new TunnelTopologyReferenceCloseable(ttp.getTopologyReference().getInstanceIdentifier());
71         }
72 }