- public void onDataChanged(final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> event) {
-
- LOG.debug("[DataChangeEvent<InstanceIdentifier<?>, DataObject>: {}]", event);
- for (final Map.Entry<InstanceIdentifier<?>, DataObject> changeEntry : event.getCreatedData().entrySet()) {
- if (changeEntry.getValue() instanceof Node) {
- nodeCreated(changeEntry.getKey(), (Node) changeEntry.getValue());
+ public void onDataTreeChanged(Collection<DataTreeModification<Node>> changes) {
+ for (DataTreeModification<Node> change: changes) {
+ LOG.debug("DataTreeModification: {}", change);
+ final DataObjectModification<Node> rootNode = change.getRootNode();
+ final InstanceIdentifier<Node> identifier = change.getRootPath().getRootIdentifier();
+ switch (rootNode.getModificationType()) {
+ case WRITE:
+ case SUBTREE_MODIFIED:
+ nodeCreated(identifier, rootNode.getDataAfter());
+ break;
+ case DELETE:
+ nodeRemoved(identifier);
+ break;
+ default:
+ break;