X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftree%2FModifiedNode.java;h=90e83ca401c213e269f8b61c0ba309c67b5775b8;hb=3911bcef14d0e323a67747fb4a5374561a1ef9f8;hp=56353350af803bcf1553bc35476d93e63e7f38a4;hpb=30b223a20b7a10ddab42115eee15d7552477f752;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java index 56353350af..90e83ca401 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java @@ -8,7 +8,10 @@ package org.opendaylight.yangtools.yang.data.impl.schema.tree; import com.google.common.base.Optional; +import com.google.common.base.Preconditions; import com.google.common.base.Predicate; +import java.util.HashMap; +import javax.annotation.Nonnull; import org.opendaylight.yangtools.concepts.Identifiable; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -33,7 +36,8 @@ final class ModifiedNode implements StoreTreeNode, Identifiable IS_TERMINAL_PREDICATE = new Predicate() { @Override - public boolean apply(final ModifiedNode input) { + public boolean apply(final @Nonnull ModifiedNode input) { + Preconditions.checkNotNull(input); switch (input.getType()) { case DELETE: case MERGE: @@ -48,16 +52,22 @@ final class ModifiedNode implements StoreTreeNode, Identifiable children = new LinkedHashMap<>(); + private final Map children; private final Optional original; private final PathArgument identifier; private ModificationType modificationType = ModificationType.UNMODIFIED; private Optional snapshotCache; private NormalizedNode value; - private ModifiedNode(final PathArgument identifier, final Optional original) { + private ModifiedNode(final PathArgument identifier, final Optional original, boolean isOrdered) { this.identifier = identifier; this.original = original; + + if (isOrdered) { + children = new LinkedHashMap<>(); + } else { + children = new HashMap<>(); + } } /** @@ -119,7 +129,7 @@ final class ModifiedNode implements StoreTreeNode, Identifiable, Identifiable, Identifiable, Identifiable