Skip to content

Commit bdbd1f8

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 327d2ee commit bdbd1f8

File tree

1 file changed

+28
-33
lines changed

1 file changed

+28
-33
lines changed

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

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
import java.util.List;
1313
import java.util.Set;
1414
import org.eclipse.jdt.annotation.NonNull;
15-
import org.opendaylight.mdsal.binding.api.DataObjectModification;
15+
import org.opendaylight.mdsal.binding.api.DataObjectDeleted;
16+
import org.opendaylight.mdsal.binding.api.DataObjectModification.WithDataAfter;
1617
import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
1718
import org.opendaylight.mdsal.binding.api.DataTreeModification;
1819
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
@@ -36,49 +37,43 @@ final class TopologyDataTreeChangeListener implements DataTreeChangeListener<Net
3637

3738
@Override
3839
public void onDataTreeChanged(@NonNull List<DataTreeModification<NetworkTopology>> changes) {
39-
changes.stream().forEach(change -> {
40-
DataObjectModification.ModificationType modificationType = change.getRootNode().getModificationType();
40+
changes.forEach(change -> {
41+
final var rootNode = change.getRootNode();
4142
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");
43+
switch (rootNode) {
44+
case WithDataAfter<NetworkTopology> written -> {
45+
final var dataBefore = written.dataBefore();
46+
final var dataAfter = written.dataAfter();
47+
int sizeOfDataBefore = 0;
48+
int sizeOfDataAfter = dataAfter.nonnullTopology().size();
6549
if (dataBefore != null) {
66-
dataBefore.nonnullTopology().values().forEach(topology -> ids.add(topology.getTopologyId()));
50+
sizeOfDataBefore = dataBefore.nonnullTopology().size();
6751
}
6852

69-
if (dataAfter != null) {
53+
if (sizeOfDataBefore < sizeOfDataAfter) {
54+
LOG.info("Data has been created");
55+
if (dataBefore != null) {
56+
dataBefore.nonnullTopology().values().forEach(
57+
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)