Reduce ObjectRegistration use
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / main / java / org / opendaylight / mdsal / binding / dom / adapter / BindingDOMDataTreeChangeServiceAdapter.java
index fb2c78148d4d136823355ab9fbec6bd949a27642..d82203ba5da4473638db1c28b7b21b8de3986eee 100644 (file)
@@ -16,7 +16,6 @@ import org.opendaylight.mdsal.binding.api.DataTreeChangeService;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataObject;
@@ -36,11 +35,11 @@ final class BindingDOMDataTreeChangeServiceAdapter extends AbstractBindingAdapte
     }
 
     @Override
-    public <T extends DataObject, L extends DataTreeChangeListener<T>> ListenerRegistration<L>
-            registerDataTreeChangeListener(final DataTreeIdentifier<T> treeId, final L listener) {
+    public <T extends DataObject> Registration registerDataTreeChangeListener(final DataTreeIdentifier<T> treeId,
+            final DataTreeChangeListener<T> listener) {
         final var domIdentifier = toDomTreeIdentifier(treeId);
-        final var storeType = treeId.getDatastoreType();
-        final var target = treeId.getRootIdentifier().getTargetType();
+        final var storeType = treeId.datastore();
+        final var target = treeId.path().getTargetType();
         final var augment = Augmentation.class.isAssignableFrom(target) ? target : null;
 
         final var domListener = listener instanceof ClusteredDataTreeChangeListener
@@ -48,8 +47,7 @@ final class BindingDOMDataTreeChangeServiceAdapter extends AbstractBindingAdapte
                 (ClusteredDataTreeChangeListener<T>) listener, storeType, augment)
                 : new BindingDOMDataTreeChangeListenerAdapter<>(adapterContext(), listener, storeType, augment);
 
-        final var domReg = getDelegate().registerDataTreeChangeListener(domIdentifier, domListener);
-        return new BindingDataTreeChangeListenerRegistration<>(listener, domReg);
+        return getDelegate().registerDataTreeChangeListener(domIdentifier, domListener);
     }
 
     @Override
@@ -67,12 +65,12 @@ final class BindingDOMDataTreeChangeServiceAdapter extends AbstractBindingAdapte
     }
 
     private @NonNull DOMDataTreeIdentifier toDomTreeIdentifier(final DataTreeIdentifier<?> treeId) {
-        return new DOMDataTreeIdentifier(treeId.getDatastoreType(),
-            currentSerializer().toYangInstanceIdentifier(treeId.getRootIdentifier()));
+        return DOMDataTreeIdentifier.of(treeId.datastore(),
+            currentSerializer().toYangInstanceIdentifier(treeId.path()));
     }
 
     private @NonNull DOMDataTreeIdentifier toDomTreeInstance(final DataTreeIdentifier<?> treeId) {
-        final var instanceIdentifier = treeId.getRootIdentifier();
+        final var instanceIdentifier = treeId.path();
         if (instanceIdentifier.isWildcarded()) {
             throw new IllegalArgumentException("Cannot register listener for wildcard " + instanceIdentifier);
         }