From: Robert Varga Date: Tue, 20 Sep 2016 00:59:00 +0000 (+0200) Subject: Make sure we optimize DOMDataTreeIdentifier X-Git-Tag: release/boron-sr1~10 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F69%2F46369%2F2;p=mdsal.git Make sure we optimize DOMDataTreeIdentifier DOMDataTreeIdentifier inside a shard is heavily reused. Do not trust the user to give us an optimized YangInstanceIdentifier but try optimizing it. Change-Id: I8a73b21562393a5f9100359d5ffaf3e2af057b6e Signed-off-by: Robert Varga (cherry picked from commit 7488878f65eef4396e5985f2228fbbad2f05d536) --- diff --git a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeIdentifier.java b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeIdentifier.java index c61722c5b4..2d4b4f9498 100644 --- a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeIdentifier.java +++ b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeIdentifier.java @@ -24,8 +24,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum * A unique identifier for a particular subtree. It is composed of the logical * data store type and the instance identifier of the root node. */ -public final class DOMDataTreeIdentifier implements Immutable, Path, Serializable, Comparable { +public final class DOMDataTreeIdentifier implements Immutable, Path, Serializable, + Comparable { private static final long serialVersionUID = 1L; + private final YangInstanceIdentifier rootIdentifier; private final LogicalDatastoreType datastoreType; @@ -57,6 +59,11 @@ public final class DOMDataTreeIdentifier implements Immutable, Path { @@ -32,10 +31,9 @@ abstract class ModificationContextNodeBuilder builtChildren = - new HashMap(boundaryChildren); - for (Entry interiorNode : interiorChildren.entrySet()) { - WriteableModificationNode builded = interiorNode.getValue().build(); + final Map builtChildren = new HashMap<>(boundaryChildren); + for (InteriorNodeBuilder interiorNode : interiorChildren.values()) { + WriteableModificationNode builded = interiorNode.build(); builtChildren.put(builded.getIdentifier(), builded); }