import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import scala.concurrent.Future;
AtomicLongFieldUpdater.newUpdater(AbstractTransactionContextFactory.class, "nextTx");
private final ConcurrentMap<String, F> knownLocal = new ConcurrentHashMap<>();
- private final LocalHistoryIdentifier historyId;
- private final ActorUtils actorUtils;
+ private final @NonNull LocalHistoryIdentifier historyId;
+ private final @NonNull ActorUtils actorUtils;
// Used via TX_COUNTER_UPDATER
@SuppressWarnings("unused")
parent.getIdentifier());
return new DirectTransactionContextWrapper(parent.getIdentifier(), actorUtils, shardName,
localContext);
- } else {
- LOG.debug("Tx {}: Local transaction context creation failed, using DelayedTransactionWrapper",
- parent.getIdentifier());
- final RemoteTransactionContextSupport remote = new RemoteTransactionContextSupport(
- transactionContextWrapper, parent, shardName);
- remote.setPrimaryShard(primaryShardInfo);
- return transactionContextWrapper;
}
+
+ LOG.debug("Tx {}: Local transaction context creation failed, using DelayedTransactionWrapper",
+ parent.getIdentifier());
+ final RemoteTransactionContextSupport remote = new RemoteTransactionContextSupport(
+ transactionContextWrapper, parent, shardName);
+ remote.setPrimaryShard(primaryShardInfo);
+ return transactionContextWrapper;
} finally {
onTransactionContextCreated(parent.getIdentifier());
}
if (findPrimaryFuture.isCompleted()) {
final Try<PrimaryShardInfo> maybe = findPrimaryFuture.value().get();
if (maybe.isSuccess()) {
- return maybeCreateDirectTransactionContextWrapper(maybe.get(), parent, shardName,
- contextWrapper);
- } else {
- onFindPrimaryShardFailure(maybe.failed().get(), parent, shardName,
- contextWrapper);
+ return maybeCreateDirectTransactionContextWrapper(maybe.get(), parent, shardName, contextWrapper);
}
+
+ onFindPrimaryShardFailure(maybe.failed().get(), parent, shardName, contextWrapper);
} else {
- findPrimaryFuture.onComplete((result) -> {
+ findPrimaryFuture.onComplete(result -> {
if (result.isSuccess()) {
onFindPrimaryShardSuccess(result.get(), parent, shardName, contextWrapper);
} else {
if (!knownLocal.containsKey(shardName)) {
LOG.debug("Shard {} resolved to local data tree - adding local factory", shardName);
- F factory = factoryForShard(shardName, primaryShardInfo.getPrimaryShardActor(), maybeDataTree.get());
+ F factory = factoryForShard(shardName, primaryShardInfo.getPrimaryShardActor(),
+ maybeDataTree.orElseThrow());
knownLocal.putIfAbsent(shardName, factory);
}
} else if (knownLocal.containsKey(shardName)) {
private static TransactionContext createLocalTransactionContext(final LocalTransactionFactory factory,
final TransactionProxy parent) {
-
- switch (parent.getType()) {
- case READ_ONLY:
+ return switch (parent.getType()) {
+ case READ_ONLY -> {
final DOMStoreReadTransaction readOnly = factory.newReadOnlyTransaction(parent.getIdentifier());
- return new LocalTransactionContext(readOnly, parent.getIdentifier(), factory) {
+ yield new LocalTransactionContext(readOnly, parent.getIdentifier(), factory) {
@Override
- protected DOMStoreWriteTransaction getWriteDelegate() {
+ DOMStoreWriteTransaction getWriteDelegate() {
throw new UnsupportedOperationException();
}
@Override
- protected DOMStoreReadTransaction getReadDelegate() {
+ DOMStoreReadTransaction getReadDelegate() {
return readOnly;
}
};
- case READ_WRITE:
+ }
+ case READ_WRITE -> {
final DOMStoreReadWriteTransaction readWrite = factory.newReadWriteTransaction(parent.getIdentifier());
- return new LocalTransactionContext(readWrite, parent.getIdentifier(), factory) {
+ yield new LocalTransactionContext(readWrite, parent.getIdentifier(), factory) {
@Override
- protected DOMStoreWriteTransaction getWriteDelegate() {
+ DOMStoreWriteTransaction getWriteDelegate() {
return readWrite;
}
@Override
- protected DOMStoreReadTransaction getReadDelegate() {
+ DOMStoreReadTransaction getReadDelegate() {
return readWrite;
}
};
- case WRITE_ONLY:
+ }
+ case WRITE_ONLY -> {
final DOMStoreWriteTransaction writeOnly = factory.newWriteOnlyTransaction(parent.getIdentifier());
- return new LocalTransactionContext(writeOnly, parent.getIdentifier(), factory) {
+ yield new LocalTransactionContext(writeOnly, parent.getIdentifier(), factory) {
@Override
- protected DOMStoreWriteTransaction getWriteDelegate() {
+ DOMStoreWriteTransaction getWriteDelegate() {
return writeOnly;
}
@Override
- protected DOMStoreReadTransaction getReadDelegate() {
+ DOMStoreReadTransaction getReadDelegate() {
throw new UnsupportedOperationException();
}
};
- default:
- throw new IllegalArgumentException("Invalid transaction type: " + parent.getType());
- }
+ }
+ default -> throw new IllegalArgumentException("Invalid transaction type: " + parent.getType());
+ };
}
}