- public void onDataChanged( final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change ) {
- DataObject dataObject = change.getUpdatedSubtree();
- if( dataObject instanceof Toaster )
- {
- Toaster toaster = (Toaster) dataObject;
- Long darkness = toaster.getDarknessFactor();
- if( darkness != null )
- {
- darknessFactor.set( darkness );
+ public void onDataTreeChanged(Collection<DataTreeModification<Toaster>> changes) {
+ for(DataTreeModification<Toaster> change: changes) {
+ DataObjectModification<Toaster> rootNode = change.getRootNode();
+ if(rootNode.getModificationType() == DataObjectModification.ModificationType.WRITE) {
+ Toaster oldToaster = rootNode.getDataBefore();
+ Toaster newToaster = rootNode.getDataAfter();
+ LOG.info("onDataTreeChanged - Toaster config with path {} was added or replaced: old Toaster: {}, new Toaster: {}",
+ change.getRootPath().getRootIdentifier(), oldToaster, newToaster);
+
+ Long darkness = newToaster.getDarknessFactor();
+ if(darkness != null) {
+ darknessFactor.set(darkness);
+ }
+ } else if(rootNode.getModificationType() == DataObjectModification.ModificationType.DELETE) {
+ LOG.info("onDataTreeChanged - Toaster config with path {} was deleted: old Toaster: {}",
+ change.getRootPath().getRootIdentifier(), rootNode.getDataBefore());