X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fspi%2FDOMForwardedReadWriteTransaction.java;fp=dom%2Fmdsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fspi%2FDOMForwardedReadWriteTransaction.java;h=39cb288cbdbe51732e6d477a74cde31dae820993;hb=90b0687e0640ee23369d2ad9978628e3ff957a26;hp=0000000000000000000000000000000000000000;hpb=53c7cdf938ab93827e53e1de3e8aebc03d500ded;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMForwardedReadWriteTransaction.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMForwardedReadWriteTransaction.java new file mode 100644 index 0000000000..39cb288cbd --- /dev/null +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMForwardedReadWriteTransaction.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2017 Brocade Communications Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.mdsal.dom.spi; + +import com.google.common.util.concurrent.FluentFuture; +import java.util.Optional; +import java.util.function.Function; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataTreeQueryReadWriteTransaction; +import org.opendaylight.mdsal.dom.api.query.DOMQuery; +import org.opendaylight.mdsal.dom.api.query.DOMQueryResult; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +/** + * Read-Write Transaction, which is composed of several + * {@link DOMStoreReadWriteTransaction} transactions. Subtransaction is selected by + * {@link LogicalDatastoreType} type parameter in: + * + * + * + *

+ * {@link #submit()} will result in invocation of + * {@link DOMDataCommitImplementation#submit(org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction, Iterable)} + * invocation with all + * {@link org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort} for + * underlying transactions. + */ +final class DOMForwardedReadWriteTransaction extends DOMForwardedWriteTransaction + implements DOMDataTreeQueryReadWriteTransaction { + + DOMForwardedReadWriteTransaction(final Object identifier, + final Function txSupplier, + final AbstractDOMForwardedTransactionFactory commitImpl) { + super(identifier, txSupplier, commitImpl); + } + + @Override + public FluentFuture> read(final LogicalDatastoreType store, + final YangInstanceIdentifier path) { + return getSubtransaction(store).read(path); + } + + @Override + public FluentFuture exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) { + return getSubtransaction(store).exists(path); + } + + @Override + public FluentFuture execute(final LogicalDatastoreType store, final DOMQuery query) { + return getSubtransaction(store).execute(query); + } +}