2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
11 * Generated from: yang module name: config-pcep-tunnel-provider yang module local name: pcep-tunnel-topology-impl
12 * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
13 * Generated at: Tue Nov 19 04:23:38 CET 2013
15 * Do not modify this file unless it is present under src/main directory
17 package org.opendaylight.controller.config.yang.pcep.tunnel.provider;
19 import org.opendaylight.bgpcep.pcep.tunnel.provider.PCEPTunnelTopologyProvider;
20 import org.opendaylight.bgpcep.pcep.tunnel.provider.TunnelProgramming;
21 import org.opendaylight.bgpcep.topology.DefaultTopologyReference;
22 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
23 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.topology.rev140113.NetworkTopologyContext;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev171025.NetworkTopologyPcepService;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.programming.rev131030.TopologyTunnelPcepProgrammingService;
27 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
28 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
29 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
35 public final class PCEPTunnelTopologyProviderModule extends AbstractPCEPTunnelTopologyProviderModule {
37 public PCEPTunnelTopologyProviderModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
38 final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
39 super(identifier, dependencyResolver);
42 public PCEPTunnelTopologyProviderModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
43 final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
44 final PCEPTunnelTopologyProviderModule oldModule, final java.lang.AutoCloseable oldInstance) {
45 super(identifier, dependencyResolver, oldModule, oldInstance);
49 public void validate() {
51 JmxAttributeValidationException.checkNotNull(getTopologyId(), "is not set.", topologyIdJmxAttribute);
55 public java.lang.AutoCloseable createInstance() {
56 final PCEPTunnelTopologyProvider ttp = PCEPTunnelTopologyProvider.create(getDataProviderDependency(),
57 getSourceTopologyDependency().getInstanceIdentifier(), getTopologyId());
58 final NetworkTopologyPcepService ntps = getRpcRegistryDependency().getRpcService(NetworkTopologyPcepService.class);
59 final TunnelProgramming tp = new TunnelProgramming(getSchedulerDependency(), getDataProviderDependency(), ntps);
61 final BindingAwareBroker.RoutedRpcRegistration<TopologyTunnelPcepProgrammingService> reg = getRpcRegistryDependency().addRoutedRpcImplementation(
62 TopologyTunnelPcepProgrammingService.class, tp);
63 final InstanceIdentifier<Topology> topology = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
64 new TopologyKey(getTopologyId())).build();
65 reg.registerPath(NetworkTopologyContext.class, topology);
67 final class TunnelTopologyReferenceCloseable extends DefaultTopologyReference implements AutoCloseable {
68 public TunnelTopologyReferenceCloseable(final InstanceIdentifier<Topology> instanceIdentifier) {
69 super(instanceIdentifier);
80 return new TunnelTopologyReferenceCloseable(ttp.getTopologyReference().getInstanceIdentifier());