- protected org.opendaylight.mdsal.dom.api.DOMDataBroker delegate() {
- return delegate;
- }
-
- @Override
- public Map<Class<? extends DOMDataBrokerExtension>, DOMDataBrokerExtension> getSupportedExtensions() {
- return extensions;
- }
-
- @Override
- public DOMDataReadOnlyTransaction newReadOnlyTransaction() {
- return new DOMDataReadOnlyTransactionAdapter(delegate().newReadOnlyTransaction());
- }
-
- @Override
- public DOMDataReadWriteTransaction newReadWriteTransaction() {
- return new DOMDataTransactionAdapter(delegate().newReadWriteTransaction());
- }
-
- @Override
- public DOMDataWriteTransaction newWriteOnlyTransaction() {
- return new DOMDataTransactionAdapter(delegate().newWriteOnlyTransaction());
- }
-
- @Override
- public DOMTransactionChain createTransactionChain(final TransactionChainListener listener) {
- AtomicReference<DOMTransactionChain> legacyChain = new AtomicReference<>();
- org.opendaylight.mdsal.common.api.TransactionChainListener delegateListener =
- new org.opendaylight.mdsal.common.api.TransactionChainListener() {
- @SuppressWarnings("rawtypes")
- @Override
- public void onTransactionChainFailed(final org.opendaylight.mdsal.common.api.TransactionChain<?, ?> chain,
- final org.opendaylight.mdsal.common.api.AsyncTransaction<?, ?> transaction, final Throwable cause) {
- listener.onTransactionChainFailed(legacyChain.get(),
- (AsyncTransaction) () -> transaction.getIdentifier(),
- cause instanceof Exception ? COMMIT_EX_MAPPER.apply((Exception)cause) : cause);
- }
-
- @Override
- public void onTransactionChainSuccessful(org.opendaylight.mdsal.common.api.TransactionChain<?, ?> chain) {
- listener.onTransactionChainSuccessful(legacyChain.get());
- }
- };
-
- final org.opendaylight.mdsal.dom.api.DOMTransactionChain delegateChain =
- delegate().createTransactionChain(delegateListener);
- legacyChain.set(new DOMTransactionChain() {
- @Override
- public DOMDataReadOnlyTransaction newReadOnlyTransaction() {
- return new DOMDataReadOnlyTransactionAdapter(delegateChain.newReadOnlyTransaction());
- }
-
- @Override
- public DOMDataReadWriteTransaction newReadWriteTransaction() {
- return new DOMDataTransactionAdapter(delegateChain.newReadWriteTransaction());
- }
-
- @Override
- public DOMDataWriteTransaction newWriteOnlyTransaction() {
- return new DOMDataTransactionAdapter(delegateChain.newWriteOnlyTransaction());
- }
-
- @Override
- public void close() {
- delegateChain.close();
- }
- });
-
- return legacyChain.get();
- }
-
- private static org.opendaylight.mdsal.common.api.LogicalDatastoreType convert(LogicalDatastoreType datastoreType) {
- return org.opendaylight.mdsal.common.api.LogicalDatastoreType.valueOf(datastoreType.name());
- }
-
- private static class DOMDataTransactionAdapter implements DOMDataReadWriteTransaction {
- private final DOMDataTreeReadTransaction readDelegate;
- private final DOMDataTreeWriteTransaction writeDelegate;
- private final Object identifier;
-
- DOMDataTransactionAdapter(@Nonnull DOMDataTreeReadTransaction readDelegate) {
- this.readDelegate = Preconditions.checkNotNull(readDelegate);
- this.identifier = readDelegate.getIdentifier();
- this.writeDelegate = null;
- }
-
- DOMDataTransactionAdapter(@Nonnull DOMDataTreeWriteTransaction writeDelegate) {
- this.writeDelegate = Preconditions.checkNotNull(writeDelegate);
- this.identifier = writeDelegate.getIdentifier();
- this.readDelegate = null;
- }
-
- DOMDataTransactionAdapter(@Nonnull DOMDataTreeReadWriteTransaction rwDelegate) {
- this.readDelegate = Preconditions.checkNotNull(rwDelegate);
- this.writeDelegate = rwDelegate;
- this.identifier = readDelegate.getIdentifier();
- }
-
- DOMDataTreeReadTransaction readDelegate() {
- return readDelegate;
- }
-
- DOMDataTreeWriteTransaction writeDelegate() {
- return writeDelegate;
- }
-
- @Override
- public Object getIdentifier() {
- return identifier;
- }
-
- @Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(LogicalDatastoreType store,
- YangInstanceIdentifier path) {
- return MappingCheckedFuture.create(readDelegate().read(convert(store), path).transform(
- Optional::fromJavaUtil, MoreExecutors.directExecutor()), ReadFailedExceptionAdapter.INSTANCE);
- }
-
- @Override
- public CheckedFuture<Boolean, ReadFailedException> exists(LogicalDatastoreType store,
- YangInstanceIdentifier path) {
- return MappingCheckedFuture.create(readDelegate().exists(convert(store), path),
- ReadFailedExceptionAdapter.INSTANCE);
- }
-
- @Override
- public void delete(LogicalDatastoreType store, YangInstanceIdentifier path) {
- writeDelegate().delete(convert(store), path);
- }
-
- @Override
- public void put(LogicalDatastoreType store, YangInstanceIdentifier path, NormalizedNode<?, ?> data) {
- writeDelegate().put(convert(store), path, data);
- }
-
- @Override
- public void merge(LogicalDatastoreType store, YangInstanceIdentifier path, NormalizedNode<?, ?> data) {
- writeDelegate().merge(convert(store), path, data);
- }
-
- @Override
- public boolean cancel() {
- return writeDelegate().cancel();
- }
-
- @Override
- public FluentFuture<? extends CommitInfo> commit() {
- final SettableFuture<CommitInfo> resultFuture = SettableFuture.create();
- writeDelegate().commit().addCallback(new FutureCallback<CommitInfo>() {
- @Override
- public void onSuccess(CommitInfo result) {
- resultFuture.set(result);
- }
-
- @Override
- public void onFailure(Throwable ex) {
- if (ex instanceof Exception) {
- resultFuture.setException(COMMIT_EX_MAPPER.apply((Exception)ex));
- } else {
- resultFuture.setException(ex);
- }
- }
- }, MoreExecutors.directExecutor());
-
- return resultFuture;
- }
- }
-
- private static class DOMDataReadOnlyTransactionAdapter implements DOMDataReadOnlyTransaction {
- private final DOMDataTransactionAdapter adapter;
-
- DOMDataReadOnlyTransactionAdapter(DOMDataTreeReadTransaction delegateTx) {
- adapter = new DOMDataTransactionAdapter(delegateTx);
- }
-
- @Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(LogicalDatastoreType store,
- YangInstanceIdentifier path) {
- return adapter.read(store, path);
- }
-
- @Override
- public CheckedFuture<Boolean, ReadFailedException> exists(LogicalDatastoreType store,
- YangInstanceIdentifier path) {
- return adapter.exists(store, path);
- }
-
- @Override
- public Object getIdentifier() {
- return adapter.getIdentifier();
- }
-
- @Override
- public void close() {
- adapter.readDelegate().close();
- }