From b8529ed937c5cfb67770870677a281225502c11c Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 21 Jan 2020 14:22:21 +0100 Subject: [PATCH] Cleanup PruningDataTreeModification Rename arguments to match API contract, simplify empty YangInstanceIdentifier checks and do not attempt pruning multiple times. JIRA: CONTROLLER-1923 Change-Id: I4c5c8af89116b9c6f7c9dd30f63e32eca94de941 Signed-off-by: Robert Varga --- .../utils/PruningDataTreeModification.java | 69 +++++++++---------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java index f62f2c8d11..8b971327b7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java @@ -57,62 +57,55 @@ public class PruningDataTreeModification extends ForwardingObject implements Dat } @Override - public void delete(final YangInstanceIdentifier yangInstanceIdentifier) { + public void delete(final YangInstanceIdentifier path) { try { - delegate.delete(yangInstanceIdentifier); + delegate.delete(path); } catch (SchemaValidationFailedException e) { - LOG.warn("Node at path : {} does not exist ignoring delete", yangInstanceIdentifier); + LOG.warn("Node at path : {} does not exist ignoring delete", path); } } @Override - public void merge(final YangInstanceIdentifier yangInstanceIdentifier, final NormalizedNode normalizedNode) { + public void merge(final YangInstanceIdentifier path, final NormalizedNode data) { + if (path.isEmpty()) { + pruneAndMergeNode(path, data); + return; + } + try { - if (YangInstanceIdentifier.empty().equals(yangInstanceIdentifier)) { - pruneAndMergeNode(yangInstanceIdentifier, normalizedNode); - } else { - delegate.merge(yangInstanceIdentifier, normalizedNode); - } + delegate.merge(path, data); } catch (SchemaValidationFailedException e) { - LOG.warn("Node at path {} was pruned during merge due to validation error: {}", - yangInstanceIdentifier, e.getMessage()); - - pruneAndMergeNode(yangInstanceIdentifier, normalizedNode); + LOG.warn("Node at path {} was pruned during merge due to validation error: {}", path, e.getMessage()); + pruneAndMergeNode(path, data); } - } - private void pruneAndMergeNode(final YangInstanceIdentifier yangInstanceIdentifier, - final NormalizedNode normalizedNode) { - NormalizedNode pruned = pruneNormalizedNode(yangInstanceIdentifier, normalizedNode); - + private void pruneAndMergeNode(final YangInstanceIdentifier path, final NormalizedNode data) { + final NormalizedNode pruned = pruneNormalizedNode(path, data); if (pruned != null) { - delegate.merge(yangInstanceIdentifier, pruned); + delegate.merge(path, pruned); } } @Override - public void write(final YangInstanceIdentifier yangInstanceIdentifier, final NormalizedNode normalizedNode) { + public void write(final YangInstanceIdentifier path, final NormalizedNode data) { + if (path.isEmpty()) { + pruneAndWriteNode(path, data); + return; + } + try { - if (YangInstanceIdentifier.empty().equals(yangInstanceIdentifier)) { - pruneAndWriteNode(yangInstanceIdentifier, normalizedNode); - } else { - delegate.write(yangInstanceIdentifier, normalizedNode); - } + delegate.write(path, data); } catch (SchemaValidationFailedException e) { - LOG.warn("Node at path : {} was pruned during write due to validation error: {}", - yangInstanceIdentifier, e.getMessage()); - - pruneAndWriteNode(yangInstanceIdentifier, normalizedNode); + LOG.warn("Node at path : {} was pruned during write due to validation error: {}", path, e.getMessage()); + pruneAndWriteNode(path, data); } } - private void pruneAndWriteNode(final YangInstanceIdentifier yangInstanceIdentifier, - final NormalizedNode normalizedNode) { - NormalizedNode pruned = pruneNormalizedNode(yangInstanceIdentifier, normalizedNode); - + private void pruneAndWriteNode(final YangInstanceIdentifier path, final NormalizedNode data) { + final NormalizedNode pruned = pruneNormalizedNode(path, data); if (pruned != null) { - delegate.write(yangInstanceIdentifier, pruned); + delegate.write(path, pruned); } } @@ -169,8 +162,8 @@ public class PruningDataTreeModification extends ForwardingObject implements Dat @Override public void write(final PathArgument child, final NormalizedNode data) { - YangInstanceIdentifier path = current().node(child); - NormalizedNode prunedNode = pruningModification.pruneNormalizedNode(path, data); + final YangInstanceIdentifier path = current().node(child); + final NormalizedNode prunedNode = pruningModification.pruneNormalizedNode(path, data); if (prunedNode != null) { toModification.write(path, prunedNode); } @@ -178,8 +171,8 @@ public class PruningDataTreeModification extends ForwardingObject implements Dat @Override public void merge(final PathArgument child, final NormalizedNode data) { - YangInstanceIdentifier path = current().node(child); - NormalizedNode prunedNode = pruningModification.pruneNormalizedNode(path, data); + final YangInstanceIdentifier path = current().node(child); + final NormalizedNode prunedNode = pruningModification.pruneNormalizedNode(path, data); if (prunedNode != null) { toModification.merge(path, prunedNode); } -- 2.36.6