private <T extends DataObject> void formatChanges(@Nonnull final StringBuilder messageBuilder, @Nonnull final Collection<DataTreeModification<T>> changes) { for (DataTreeModification<T> modification : changes) { final DataTreeIdentifier<T> identifier = modification.getRootPath(); final LogicalDatastoreType datastoreType = identifier.getDatastoreType(); if (datastoreType == LogicalDatastoreType.OPERATIONAL) { messageBuilder.append("OPERATIONAL: "); } else { messageBuilder.append("CONFIGURATION: "); } final DataObjectModification<T> objectModification = modification.getRootNode(); formatModification(messageBuilder, objectModification); } }
@Override public <T extends DataObject, L extends DataTreeChangeListener<T>> ListenerRegistration<L> registerDataTreeChangeListener( final DataTreeIdentifier<T> treeId, final L listener) { final DOMDataTreeIdentifier domIdentifier = toDomTreeIdentifier(treeId); @SuppressWarnings({ "rawtypes", "unchecked" }) final BindingDOMDataTreeChangeListenerAdapter<T> domListener = listener instanceof ClusteredDataTreeChangeListener ? new BindingClusteredDOMDataTreeChangeListenerAdapter<T>( codec, (ClusteredDataTreeChangeListener)listener, treeId.getDatastoreType()) : new BindingDOMDataTreeChangeListenerAdapter<T>(codec, listener, treeId.getDatastoreType()); final ListenerRegistration<BindingDOMDataTreeChangeListenerAdapter<T>> domReg = dataTreeChangeService.registerDataTreeChangeListener(domIdentifier, domListener); return new BindingDataTreeChangeListenerRegistration<>(listener,domReg); }
private DOMDataTreeIdentifier toDomTreeIdentifier(final DataTreeIdentifier<?> treeId) { final YangInstanceIdentifier domPath = codec.toYangInstanceIdentifierBlocking(treeId.getRootIdentifier()); return new DOMDataTreeIdentifier(treeId.getDatastoreType(), domPath); } }
final String nodeId = c.getRootPath().getRootIdentifier().firstKeyOf(Node.class).getNodeId().getValue(); final DatastoreAccess datastoreAccess = getDatastoreAccess(nodeId); if (LogicalDatastoreType.CONFIGURATION.equals(c.getRootPath().getDatastoreType())) { switch (c.getRootNode().getModificationType()) { case WRITE: if (c.getRootNode().getDataAfter() != null) { subListeners.forEach(l -> { l.handleChange(l.getModifications(c), c.getRootPath().getDatastoreType(), c.getRootPath().getRootIdentifier()); }); .start(); subListeners.forEach(l -> { l.handleChange(l.getModifications(c), c.getRootPath().getDatastoreType(), c.getRootPath().getRootIdentifier()); }); l.handleChange(l.getModifications(c), c.getRootPath().getDatastoreType(), c.getRootPath().getRootIdentifier()); });