- @Override
- public void write(final InstanceIdentifier path, final NormalizedNode<?, ?> data) {
- checkNotReady();
- mutableTree.write(path, data);
- }
-
- @Override
- public void delete(final InstanceIdentifier path) {
- checkNotReady();
- mutableTree.delete(path);
- }
-
- protected boolean isReady() {
- return ready;
- }
-
- protected void checkNotReady() {
- checkState(!ready, "Transaction is ready. No further modifications allowed.");
- }
-
- @Override
- public synchronized DOMStoreThreePhaseCommitCohort ready() {
- ready = true;
- LOG.debug("Store transaction: {} : Ready", getIdentifier());
- mutableTree.seal();
- return store.submit(this);
- }
-
- protected MutableDataTree getMutatedView() {
- return mutableTree;
- }
-
- @Override
- public String toString() {
- return "SnaphostBackedWriteTransaction [id=" + getIdentifier() + ", ready=" + isReady() + "]";
- }
-
- }
-
- private static class SnapshotBackedReadWriteTransaction extends SnaphostBackedWriteTransaction implements
- DOMStoreReadWriteTransaction {
-
- protected SnapshotBackedReadWriteTransaction(final Object identifier, final DataAndMetadataSnapshot snapshot,
- final InMemoryDOMDataStore store, final ModificationApplyOperation applyOper) {
- super(identifier, snapshot, store, applyOper);
- }
-
- @Override
- public ListenableFuture<Optional<NormalizedNode<?, ?>>> read(final InstanceIdentifier path) {
- return Futures.immediateFuture(getMutatedView().read(path));
- }
-
- @Override
- public String toString() {
- return "SnapshotBackedReadWriteTransaction [id=" + getIdentifier() + ", ready=" + isReady() + "]";