Merge "BUG-2350: do encapsulte null snapshot"
authorTony Tkacik <ttkacik@cisco.com>
Wed, 7 Jan 2015 10:23:24 +0000 (10:23 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 7 Jan 2015 10:23:24 +0000 (10:23 +0000)
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeModification.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/SchemaAwareApplyOperation.java

index eef5d1f73f13d47769407ebddeffac7626ea41e6..f23cadcf0d2d57b55de1eca7cd975d94c9622bc1 100644 (file)
@@ -100,11 +100,10 @@ final class InMemoryDataTreeModification implements DataTreeModification {
         }
     }
 
-    private Optional<TreeNode> resolveSnapshot(final YangInstanceIdentifier path,
-            final ModifiedNode modification) {
-        final Optional<Optional<TreeNode>> potentialSnapshot = modification.getSnapshotCache();
-        if (potentialSnapshot.isPresent()) {
-            return potentialSnapshot.get();
+    private Optional<TreeNode> resolveSnapshot(final YangInstanceIdentifier path, final ModifiedNode modification) {
+        final Optional<TreeNode> potentialSnapshot = modification.getSnapshot();
+        if (potentialSnapshot != null) {
+            return potentialSnapshot;
         }
 
         try {
index cfece17b886c8616c222790bd7e996d270fc0486..5e9c0eb268f933ad7b7eccee3cd8b62c0a6ab3ba 100644 (file)
@@ -250,13 +250,13 @@ final class ModifiedNode extends NodeModification implements StoreTreeNode<Modif
         snapshotCache = null;
     }
 
-    public Optional<TreeNode> storeSnapshot(final Optional<TreeNode> snapshot) {
-        snapshotCache = snapshot;
-        return snapshot;
+    Optional<TreeNode> getSnapshot() {
+        return snapshotCache;
     }
 
-    public Optional<Optional<TreeNode>> getSnapshotCache() {
-        return Optional.fromNullable(snapshotCache);
+    Optional<TreeNode> setSnapshot(final Optional<TreeNode> snapshot) {
+        snapshotCache = Preconditions.checkNotNull(snapshot);
+        return snapshot;
     }
 
     private void updateModificationType(final ModificationType type) {
index 85ed74f208e6b44ce8cb4613ea0729e8bd022a92..c2eebed882f810d7c8a47efdd0339e318ff2891a 100644 (file)
@@ -201,11 +201,11 @@ abstract class SchemaAwareApplyOperation implements ModificationApplyOperation {
 
         switch (modification.getType()) {
         case DELETE:
-            return modification.storeSnapshot(Optional.<TreeNode> absent());
+            return modification.setSnapshot(Optional.<TreeNode> absent());
         case SUBTREE_MODIFIED:
             Preconditions.checkArgument(currentMeta.isPresent(), "Metadata not available for modification",
                     modification);
-            return modification.storeSnapshot(Optional.of(applySubtreeChange(modification, currentMeta.get(),
+            return modification.setSnapshot(Optional.of(applySubtreeChange(modification, currentMeta.get(),
                     version)));
         case MERGE:
             final TreeNode result;
@@ -217,9 +217,9 @@ abstract class SchemaAwareApplyOperation implements ModificationApplyOperation {
                 result = applyWrite(modification, currentMeta, version);
             }
 
-            return modification.storeSnapshot(Optional.of(result));
+            return modification.setSnapshot(Optional.of(result));
         case WRITE:
-            return modification.storeSnapshot(Optional.of(applyWrite(modification, currentMeta, version)));
+            return modification.setSnapshot(Optional.of(applyWrite(modification, currentMeta, version)));
         case UNMODIFIED:
             return currentMeta;
         default: