}
}
- 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 {
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) {
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;
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: