- public BindingTransactionChain createTransactionChain(final TransactionChainListener listener) {
- return new BindingDOMTransactionChainAdapter(getDelegate(), getCodec(), listener);
+ public TransactionChain createMergingTransactionChain() {
+ return new BindingDOMTransactionChainAdapter(getDelegate().createMergingTransactionChain(), adapterContext());
+ }
+
+ @Override
+ public <T extends DataObject> Registration registerTreeChangeListener(final DataTreeIdentifier<T> treeId,
+ final DataTreeChangeListener<T> listener) {
+ return getTreeChangeService().registerTreeChangeListener(treeId, listener);
+ }
+
+ @Override
+ @Deprecated(since = "13.0.0", forRemoval = true)
+ public <T extends DataObject> Registration registerLegacyTreeChangeListener(final DataTreeIdentifier<T> treeId,
+ final DataTreeChangeListener<T> listener) {
+ return getTreeChangeService().registerLegacyTreeChangeListener(treeId, listener);
+ }
+
+ private @NonNull DataTreeChangeService getTreeChangeService() {
+ final var local = treeChangeService;
+ if (local == null) {
+ throw new UnsupportedOperationException("Underlying data broker does not expose DOMDataTreeChangeService.");
+ }
+ return local;