Split off Read/WriteOperations from Read/WriteTransaction
[mdsal.git] / binding / mdsal-binding-api / src / main / java / org / opendaylight / mdsal / binding / api / ReadTransaction.java
index 35c97389cb55cd0ce128d0da87113820c4fd3d5a..6308be5e5d7954b0f7ee548017f9032548839940 100644 (file)
@@ -7,14 +7,6 @@
  */
 package org.opendaylight.mdsal.binding.api;
 
-import com.google.common.util.concurrent.FluentFuture;
-import java.util.Optional;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
-import org.opendaylight.yangtools.concepts.Registration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
 /**
  * A transaction that provides a stateful read-only view of the data tree.
  *
@@ -50,28 +42,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
  * java.util.concurrent.Executor)} or other functions from {@link com.google.common.util.concurrent.Futures} to register
  * more specific listeners.
  */
-public interface ReadTransaction extends Transaction, Registration {
-    /**
-     * Reads data from the provided logical data store located at the provided path.
-     *
-     * <p>
-     * If the target is a subtree, then the whole subtree is read (and will be accessible from the returned data
-     * object).
-     *
-     * @param store Logical data store from which read should occur.
-     * @param path Path which uniquely identifies subtree which client want to read
-     * @return a FluentFuture containing the result of the read. The Future blocks until the commit operation is
-     *         complete. Once complete:
-     *         <ul>
-     *         <li>If the data at the supplied path exists, the Future returns an Optional object containing the data.
-     *         </li>
-     *         <li>If the data at the supplied path does not exist, the Future returns Optional.empty().</li>
-     *         <li>If the read of the data fails, the Future will fail with a {@link ReadFailedException} or
-     *         an exception derived from ReadFailedException.</li>
-     *         </ul>
-     */
-    <T extends DataObject> FluentFuture<Optional<T>> read(LogicalDatastoreType store, InstanceIdentifier<T> path);
-
+public interface ReadTransaction extends Transaction, AutoCloseable, ReadOperations {
     /**
      * Closes this transaction and releases all resources associated with it.
      */