- builder.add((DOMDataTreeChangeService) (treeId, listener) -> {
- final var dsType = treeId.datastore();
- if (getTxFactories().get(dsType) instanceof DOMStoreTreeChangePublisher publisher) {
- return publisher.registerTreeChangeListener(treeId.path(), listener);
+ builder.add(new DataTreeChangeExtension() {
+ @Override
+ public Registration registerTreeChangeListener(final DOMDataTreeIdentifier treeId,
+ final DOMDataTreeChangeListener listener) {
+ return getPublisher(treeId.datastore()).registerTreeChangeListener(treeId.path(), listener);
+ }
+
+ @Override
+ @Deprecated(since = "13.0.0", forRemoval = true)
+ public Registration registerLegacyTreeChangeListener(final DOMDataTreeIdentifier treeId,
+ final DOMDataTreeChangeListener listener) {
+ return getPublisher(treeId.datastore()).registerLegacyTreeChangeListener(treeId.path(), listener);
+ }
+
+ private DOMStoreTreeChangePublisher getPublisher(final LogicalDatastoreType datastore) {
+ if (getTxFactories().get(datastore) instanceof DOMStoreTreeChangePublisher publisher) {
+ return publisher;
+ }
+ throw new IllegalStateException("Publisher for " + datastore + " data store is not available");