* 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.netconf.topology.singleton.impl.tx;
import akka.actor.ActorRef;
import akka.dispatch.OnComplete;
import akka.util.Timeout;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.SettableFuture;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction;
import org.opendaylight.mdsal.common.api.CommitInfo;
-import org.opendaylight.mdsal.common.api.MappingCheckedFuture;
-import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
+import org.opendaylight.netconf.sal.connect.api.RemoteDeviceId;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.slf4j.Logger;
* ProxyReadWriteTransaction uses provided {@link ActorRef} to delegate method calls to master
* {@link org.opendaylight.netconf.topology.singleton.impl.actors.ReadWriteTransactionActor}.
*/
-public class ProxyReadWriteTransaction implements DOMDataReadWriteTransaction {
+public class ProxyReadWriteTransaction implements DOMDataTreeReadWriteTransaction {
private static final Logger LOG = LoggerFactory.getLogger(ProxyReadWriteTransaction.class);
private final RemoteDeviceId id;
final ExecutionContext executionContext, final Timeout askTimeout) {
this.id = id;
- masterTxActorFuture.onComplete(new OnComplete<Object>() {
+ masterTxActorFuture.onComplete(new OnComplete<>() {
@Override
public void onComplete(final Throwable failure, final Object masterTxActor) {
final ProxyTransactionFacade newTransactionFacade;
return false;
}
- processTransactionOperation(facade -> facade.cancel());
+ processTransactionOperation(DOMDataTreeWriteTransaction::cancel);
return true;
}
@Override
- public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final LogicalDatastoreType store,
+ public FluentFuture<Optional<NormalizedNode>> read(final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
LOG.debug("{}: Read {} {}", id, store, path);
- final SettableFuture<Optional<NormalizedNode<?, ?>>> returnFuture = SettableFuture.create();
+ final SettableFuture<Optional<NormalizedNode>> returnFuture = SettableFuture.create();
processTransactionOperation(facade -> returnFuture.setFuture(facade.read(store, path)));
- return MappingCheckedFuture.create(returnFuture, ReadFailedException.MAPPER);
+ return FluentFuture.from(returnFuture);
}
@Override
- public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
+ public FluentFuture<Boolean> exists(final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
LOG.debug("{}: Exists {} {}", id, store, path);
final SettableFuture<Boolean> returnFuture = SettableFuture.create();
processTransactionOperation(facade -> returnFuture.setFuture(facade.exists(store, path)));
- return MappingCheckedFuture.create(returnFuture, ReadFailedException.MAPPER);
+ return FluentFuture.from(returnFuture);
}
@Override
}
@Override
- public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path,
- final NormalizedNode<?, ?> data) {
+ public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) {
checkOpen();
LOG.debug("{}: Put {} {}", id, store, path);
processTransactionOperation(facade -> facade.put(store, path, data));
}
@Override
- public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path,
- final NormalizedNode<?, ?> data) {
+ public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) {
checkOpen();
LOG.debug("{}: Merge {} {}", id, store, path);
processTransactionOperation(facade -> facade.merge(store, path, data));
final SettableFuture<CommitInfo> returnFuture = SettableFuture.create();
processTransactionOperation(facade -> returnFuture.setFuture(facade.commit()));
- return returnFuture;
+ return FluentFuture.from(returnFuture);
}
@Override