Bump upstreams
[bgpcep.git] / pcep / tunnel / tunnel-provider / src / main / java / org / opendaylight / bgpcep / pcep / tunnel / provider / PCEPTunnelTopologyProvider.java
index a8fe67b95f76112e346af339a3b33a105a370d0c..ca2b149015b8d29e3556bb806b4c23edf6c77f58 100644 (file)
@@ -7,24 +7,22 @@
  */
 package org.opendaylight.bgpcep.pcep.tunnel.provider;
 
-import java.util.ArrayList;
 import java.util.concurrent.ExecutionException;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
 import org.opendaylight.bgpcep.topology.DefaultTopologyReference;
 import org.opendaylight.bgpcep.topology.TopologyReference;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.WriteTransaction;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.rev130820.TopologyTypes1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.rev130820.TopologyTypes1Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.rev130820.topology.tunnel.pcep.type.TopologyTunnelPcepBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.rev181109.TopologyTypes1Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.rev181109.topology.tunnel.pcep.type.TopologyTunnelPcepBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypesBuilder;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,7 +37,7 @@ public final class PCEPTunnelTopologyProvider extends DefaultTopologyReference i
     private final DataBroker dataBroker;
     private final TopologyId tunneltopologyId;
     @GuardedBy("this")
-    private ListenerRegistration<NodeChangedListener> reg;
+    private Registration reg;
 
     public PCEPTunnelTopologyProvider(
             final DataBroker dataBroker,
@@ -50,39 +48,38 @@ public final class PCEPTunnelTopologyProvider extends DefaultTopologyReference i
         super(tunnelTopology);
         this.dataBroker = dataBroker;
         this.tunneltopologyId = tunneltopologyId;
-        this.ncl = new NodeChangedListener(dataBroker, pcepTopologyId, tunnelTopology);
-        this.src = pcepTopology.child(Node.class);
-        this.ref = new DefaultTopologyReference(tunnelTopology);
+        ncl = new NodeChangedListener(dataBroker, pcepTopologyId, tunnelTopology);
+        src = pcepTopology.child(Node.class);
+        ref = new DefaultTopologyReference(tunnelTopology);
     }
 
     synchronized void init() {
-        final WriteTransaction tx = this.dataBroker.newWriteOnlyTransaction();
-        tx.put(LogicalDatastoreType.OPERATIONAL, getTopologyReference().getInstanceIdentifier(),
-                new TopologyBuilder().setTopologyId(this.tunneltopologyId)
+        final WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+        tx.mergeParentStructurePut(LogicalDatastoreType.OPERATIONAL, getTopologyReference().getInstanceIdentifier(),
+                new TopologyBuilder().setTopologyId(tunneltopologyId)
                         .setTopologyTypes(new TopologyTypesBuilder()
-                                .addAugmentation(TopologyTypes1.class, new TopologyTypes1Builder()
+                                .addAugmentation(new TopologyTypes1Builder()
                                         .setTopologyTunnelPcep(
                                                 new TopologyTunnelPcepBuilder().build()).build()).build())
-                        .setNode(new ArrayList<>()).build(), true);
+                        .build());
         try {
             tx.commit().get();
         } catch (final InterruptedException | ExecutionException e) {
             LOG.error("Failed to create Tunnel Topology root", e);
         }
-        this.reg = this.ncl.getDataProvider()
-                .registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, this.src),
-                        this.ncl);
+        reg = ncl.getDataProvider()
+            .registerTreeChangeListener(DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, src), ncl);
     }
 
     public TopologyReference getTopologyReference() {
-        return this.ref;
+        return ref;
     }
 
     @Override
     public synchronized void close() {
-        if (this.reg != null) {
-            this.reg.close();
-            this.reg = null;
+        if (reg != null) {
+            reg.close();
+            reg = null;
         }
     }
 }