Skip to content

Commit a2a49d4

Browse files
committed
Remove deprecated DataObjectModification methods
DataObjectModification was remodeled intorducing new way how to handle onDataTreeChanged. See MDSAL-889 and NETCONF-1530 JIRA: LIGHTY-394 Signed-off-by: Peter Suna <peter.suna@pantheon.tech>
1 parent 594c6fc commit a2a49d4

File tree

1 file changed

+27
-32
lines changed

1 file changed

+27
-32
lines changed

examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/TopologyDataTreeChangeListener.java

Lines changed: 27 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import java.util.List;
1313
import java.util.Set;
1414
import org.eclipse.jdt.annotation.NonNull;
15+
import org.opendaylight.mdsal.binding.api.DataObjectDeleted;
1516
import org.opendaylight.mdsal.binding.api.DataObjectModification;
17+
import org.opendaylight.mdsal.binding.api.DataObjectModification.WithDataAfter;
1618
import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
1719
import org.opendaylight.mdsal.binding.api.DataTreeModification;
1820
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
@@ -36,49 +38,42 @@ final class TopologyDataTreeChangeListener implements DataTreeChangeListener<Net
3638

3739
@Override
3840
public void onDataTreeChanged(@NonNull List<DataTreeModification<NetworkTopology>> changes) {
39-
changes.stream().forEach(change -> {
40-
DataObjectModification.ModificationType modificationType = change.getRootNode().getModificationType();
41+
changes.forEach(change -> {
42+
final var rootNode = change.getRootNode();
4143
Set<TopologyId> ids = new HashSet<>();
42-
final NetworkTopology dataBefore = change.getRootNode().getDataBefore();
43-
final NetworkTopology dataAfter = change.getRootNode().getDataAfter();
44-
if (DataObjectModification.ModificationType.DELETE.equals(modificationType)) {
45-
46-
LOG.info("Data has been deleted");
47-
48-
notificationForDeletedData(dataBefore, dataAfter, ids);
49-
} else if (DataObjectModification.ModificationType.SUBTREE_MODIFIED.equals(modificationType)
50-
|| DataObjectModification.ModificationType.WRITE.equals(modificationType)) {
51-
52-
int sizeOfDataBefore = 0;
53-
int sizeOfDataAfter = 0;
54-
55-
if (dataBefore != null) {
56-
sizeOfDataBefore = dataBefore.getTopology().size();
57-
}
58-
59-
if (dataAfter != null) {
60-
sizeOfDataAfter = dataAfter.getTopology().size();
61-
}
62-
63-
if (sizeOfDataBefore < sizeOfDataAfter) {
64-
LOG.info("Data has been created");
44+
switch (rootNode) {
45+
case WithDataAfter<NetworkTopology> written -> {
46+
final var dataBefore = written.dataBefore();
47+
final var dataAfter = written.dataAfter();
48+
int sizeOfDataBefore = 0;
49+
int sizeOfDataAfter = dataAfter.nonnullTopology().size();
6550
if (dataBefore != null) {
66-
dataBefore.nonnullTopology().values().forEach(topology -> ids.add(topology.getTopologyId()));
51+
sizeOfDataBefore = dataBefore.nonnullTopology().size();
6752
}
6853

69-
if (dataAfter != null) {
54+
if (sizeOfDataBefore < sizeOfDataAfter) {
55+
LOG.info("Data has been created");
56+
if (dataBefore != null) {
57+
dataBefore.nonnullTopology().values().forEach(topology -> ids.add(topology.getTopologyId()));
58+
}
59+
7060
dataAfter.nonnullTopology().values().forEach(topology -> {
7161
if (!ids.contains(topology.getTopologyId())) {
7262
notificationPublishService.publish(new NewTopologyCreatedBuilder()
73-
.setTopologyId(topology.getTopologyId())
74-
.build(), NewTopologyCreated.QNAME);
63+
.setTopologyId(topology.getTopologyId())
64+
.build(), NewTopologyCreated.QNAME);
7565
}
7666
});
67+
} else {
68+
LOG.info("Data has been modified");
69+
notificationForDeletedData(dataBefore, dataAfter, ids);
7770
}
78-
} else {
79-
LOG.info("Data has been modified");
80-
notificationForDeletedData(dataBefore, dataAfter, ids);
8171
}
72+
case DataObjectDeleted<NetworkTopology> deleted -> {
73+
LOG.info("Data has been deleted");
74+
notificationForDeletedData(deleted.dataBefore(), null, ids);
75+
}
76+
default -> LOG.warn("Unsupported tree modification received, {}", rootNode.dataType());
8277
}
8378
});
8479
}

0 commit comments

Comments
 (0)