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-bgp-topology-provider yang module local name: bgp-reachability-ipv4
12 * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
13 * Generated at: Tue Nov 19 15:13:57 CET 2013
15 * Do not modify this file unless it is present under src/main directory
17 package org.opendaylight.controller.config.yang.bgp.reachability.ipv4;
19 import java.util.concurrent.ExecutionException;
20 import org.opendaylight.bgpcep.bgp.topology.provider.Ipv4ReachabilityTopologyBuilder;
21 import org.opendaylight.bgpcep.topology.DefaultTopologyReference;
22 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
23 import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeService;
24 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
27 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
28 import org.opendaylight.yangtools.concepts.ListenerRegistration;
29 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
36 public final class Ipv4ReachabilityTopologyBuilderModule extends
37 org.opendaylight.controller.config.yang.bgp.reachability.ipv4.AbstractIpv4ReachabilityTopologyBuilderModule {
38 private static final Logger LOG = LoggerFactory.getLogger(Ipv4ReachabilityTopologyBuilderModule.class);
40 public Ipv4ReachabilityTopologyBuilderModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
41 final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
42 super(identifier, dependencyResolver);
45 public Ipv4ReachabilityTopologyBuilderModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
46 final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
47 final Ipv4ReachabilityTopologyBuilderModule oldModule, final java.lang.AutoCloseable oldInstance) {
48 super(identifier, dependencyResolver, oldModule, oldInstance);
52 public void validate() {
54 JmxAttributeValidationException.checkNotNull(getTopologyId(), "is not set.", topologyIdJmxAttribute);
58 public java.lang.AutoCloseable createInstance() {
59 final Ipv4ReachabilityTopologyBuilder b = new Ipv4ReachabilityTopologyBuilder(getDataProviderDependency(), getLocalRibDependency(), getTopologyId());
60 final ListenerRegistration<?> r = b.start((DataTreeChangeService) getDataProviderDependency(), Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class);
61 LOG.debug("Registered listener {} on topology {}", b, b.getInstanceIdentifier());
63 final class TopologyReferenceAutocloseable extends DefaultTopologyReference implements AutoCloseable {
64 public TopologyReferenceAutocloseable(final InstanceIdentifier<Topology> instanceIdentifier) {
65 super(instanceIdentifier);
69 public void close() throws InterruptedException, ExecutionException, TransactionCommitFailedException {
78 return new TopologyReferenceAutocloseable(b.getInstanceIdentifier());