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%2Fstore%2FSnapshotBackedTransactions.java;h=85e9fc2870af393b7d1bdc7b0914b2f8a56e91fc;hb=11408d627adca7eb71ac956c3ad01f75b6b91596;hp=ccf1f7884da35c59c11bdc1e3d4e6e2bc4eaa0f1;hpb=0f351bbc28ddf2cddfe30c8d018646d81953fa17;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedTransactions.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedTransactions.java index ccf1f7884d..85e9fc2870 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedTransactions.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedTransactions.java @@ -7,9 +7,13 @@ */ package org.opendaylight.mdsal.dom.spi.store; +import static java.util.Objects.requireNonNull; + import com.google.common.annotations.Beta; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction.TransactionClosePrototype; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.TransactionReadyPrototype; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; /** * Public utility class for instantiating snapshot-backed transactions. @@ -17,18 +21,34 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; @Beta public final class SnapshotBackedTransactions { private SnapshotBackedTransactions() { - throw new UnsupportedOperationException("Utility class"); + // Hidden on purpose } /** * Creates a new read-only transaction. + * * @param identifier Transaction Identifier * @param debug Enable transaction debugging * @param snapshot Snapshot which will be modified. + * @return A new read-only transaction */ - public static SnapshotBackedReadTransaction newReadTransaction(final T identifier, + public static @NonNull SnapshotBackedReadTransaction newReadTransaction(final T identifier, final boolean debug, final DataTreeSnapshot snapshot) { - return new SnapshotBackedReadTransaction<>(identifier, debug, snapshot); + return new SnapshotBackedReadTransaction<>(identifier, debug, snapshot, null); + } + + /** + * Creates a new read-only transaction. + * + * @param identifier Transaction Identifier + * @param debug Enable transaction debugging + * @param snapshot Snapshot which will be modified. + * @param closeImpl Implementation of close method + * @return A new read-only transaction + */ + public static @NonNull SnapshotBackedReadTransaction newReadTransaction(final T identifier, + final boolean debug, final DataTreeSnapshot snapshot, final TransactionClosePrototype closeImpl) { + return new SnapshotBackedReadTransaction<>(identifier, debug, snapshot, requireNonNull(closeImpl)); } /** @@ -38,8 +58,9 @@ public final class SnapshotBackedTransactions { * @param debug Enable transaction debugging * @param snapshot Snapshot which will be modified. * @param readyImpl Implementation of ready method. + * @return A new read-write transaction */ - public static SnapshotBackedReadWriteTransaction newReadWriteTransaction(final T identifier, + public static @NonNull SnapshotBackedReadWriteTransaction newReadWriteTransaction(final T identifier, final boolean debug, final DataTreeSnapshot snapshot, final TransactionReadyPrototype readyImpl) { return new SnapshotBackedReadWriteTransaction<>(identifier, debug, snapshot, readyImpl); } @@ -51,8 +72,9 @@ public final class SnapshotBackedTransactions { * @param debug Enable transaction debugging * @param snapshot Snapshot which will be modified. * @param readyImpl Implementation of ready method. + * @return A new write transaction */ - public static SnapshotBackedWriteTransaction newWriteTransaction(final T identifier, + public static @NonNull SnapshotBackedWriteTransaction newWriteTransaction(final T identifier, final boolean debug, final DataTreeSnapshot snapshot, final TransactionReadyPrototype readyImpl) { return new SnapshotBackedWriteTransaction<>(identifier, debug, snapshot, readyImpl); }