Remove intermediate checking maps 19/86019/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Nov 2019 16:57:27 +0000 (17:57 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Nov 2019 08:42:28 +0000 (09:42 +0100)
We are enforcing schema tree validity, which is a superset of
the intermediate checks being done in these constructors. Remove
these maps.

JIRA: YANGTOOLS-1043
Change-Id: I88c6b00794fcc31970571bd72a0f57ecb9bd9a19
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 6ba759ce6949dfa7ebbaf90a2a937674f3c52542)

yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedDataNodeContainer.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveModule.java

index 3f472c7887941aaad386a4e7b79f9a43d96e6027..9f8573b92ed32d3de24c9cf8fd89ae75058f6c94 100644 (file)
@@ -9,9 +9,7 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
 
 import com.google.common.collect.ImmutableSet;
 import java.util.HashSet;
-import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
-import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -36,7 +34,6 @@ public abstract class AbstractEffectiveDocumentedDataNodeContainer<A, D extends
     protected AbstractEffectiveDocumentedDataNodeContainer(final StmtContext<A, D, ?> ctx) {
         super(ctx);
 
-        Map<QName, DataSchemaNode> mutableChildNodes = new LinkedHashMap<>();
         Set<GroupingDefinition> mutableGroupings = new HashSet<>();
         Set<UsesNode> mutableUses = new HashSet<>();
         Set<TypeDefinition<?>> mutableTypeDefinitions = new LinkedHashSet<>();
@@ -44,13 +41,7 @@ public abstract class AbstractEffectiveDocumentedDataNodeContainer<A, D extends
 
         for (EffectiveStatement<?, ?> stmt : effectiveSubstatements()) {
             if (stmt instanceof DataSchemaNode) {
-                final DataSchemaNode dataSchemaNode = (DataSchemaNode) stmt;
-                if (mutableChildNodes.containsKey(dataSchemaNode.getQName())) {
-                    throw EffectiveStmtUtils.createNameCollisionSourceException(ctx, stmt);
-                }
-
-                mutableChildNodes.put(dataSchemaNode.getQName(), dataSchemaNode);
-                mutablePublicChildNodes.add(dataSchemaNode);
+                mutablePublicChildNodes.add((DataSchemaNode) stmt);
             }
             if (stmt instanceof UsesNode && !mutableUses.add((UsesNode) stmt)) {
                 throw EffectiveStmtUtils.createNameCollisionSourceException(ctx, stmt);
index 8376d38cea715d7c9251406728726f6a044ef1a5..055188be4e45d478916d8e92689f99619d2fc2f8 100644 (file)
@@ -16,10 +16,8 @@ import com.google.common.collect.ImmutableSet;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
@@ -101,7 +99,6 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
         final Set<FeatureDefinition> featuresInit = new HashSet<>();
         final List<ExtensionDefinition> extensionNodesInit = new ArrayList<>();
 
-        final Map<QName, DataSchemaNode> mutableChildNodes = new LinkedHashMap<>();
         final Set<GroupingDefinition> mutableGroupings = new HashSet<>();
         final Set<UsesNode> mutableUses = new HashSet<>();
         final Set<TypeDefinition<?>> mutableTypeDefinitions = new LinkedHashSet<>();
@@ -133,13 +130,7 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
                 extensionNodesInit.add((ExtensionDefinition) effectiveStatement);
             }
             if (effectiveStatement instanceof DataSchemaNode) {
-                final DataSchemaNode dataSchemaNode = (DataSchemaNode) effectiveStatement;
-                if (!mutableChildNodes.containsKey(dataSchemaNode.getQName())) {
-                    mutableChildNodes.put(dataSchemaNode.getQName(), dataSchemaNode);
-                    mutablePublicChildNodes.add(dataSchemaNode);
-                } else {
-                    throw EffectiveStmtUtils.createNameCollisionSourceException(ctx, effectiveStatement);
-                }
+                mutablePublicChildNodes.add((DataSchemaNode) effectiveStatement);
             }
             if (effectiveStatement instanceof UsesNode && !mutableUses.add((UsesNode) effectiveStatement)) {
                 throw EffectiveStmtUtils.createNameCollisionSourceException(ctx, effectiveStatement);