Cleanup AbstractEffectiveDocumentedDataNodeContainer a bit 37/68837/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 27 Feb 2018 20:00:40 +0000 (21:00 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 27 Feb 2018 20:00:40 +0000 (21:00 +0100)
Throw colision exception in a short block, allowing logic to be
better in-lined.

Change-Id: I87d056127869d3c2ea7cc2d240b6f6278b57c9c8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedDataNodeContainer.java

index 40725e2fc698819d71f7f522e4dcf7f92fd3f389..e230ab7064eb99245d74849f9661e6ab76219ab4 100644 (file)
@@ -55,24 +55,22 @@ 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())) {
-                    /**
-                     * Add case short hand when augmenting choice with short hand
-                     **/
-                    if (this instanceof AugmentationSchemaNode
-                            && !(stmt instanceof CaseSchemaNode || stmt instanceof ChoiceSchemaNode)
-                            && YangValidationBundles.SUPPORTED_CASE_SHORTHANDS.contains(stmt.statementDefinition())
-                            && Boolean.TRUE.equals(ctx.getFromNamespace(AugmentToChoiceNamespace.class, ctx))) {
-                        final ImplicitCaseSchemaNode caseShorthand = new ImplicitCaseSchemaNode(dataSchemaNode);
-                        mutableChildNodes.put(caseShorthand.getQName(), caseShorthand);
-                        mutablePublicChildNodes.add(caseShorthand);
-                    } else {
-                        mutableChildNodes.put(dataSchemaNode.getQName(), dataSchemaNode);
-                        mutablePublicChildNodes.add(dataSchemaNode);
-                    }
-                } else {
+                if (mutableChildNodes.containsKey(dataSchemaNode.getQName())) {
                     throw EffectiveStmtUtils.createNameCollisionSourceException(ctx, stmt);
                 }
+
+                //  Add case short hand when augmenting choice with short hand
+                if (this instanceof AugmentationSchemaNode
+                        && !(stmt instanceof CaseSchemaNode || stmt instanceof ChoiceSchemaNode)
+                        && YangValidationBundles.SUPPORTED_CASE_SHORTHANDS.contains(stmt.statementDefinition())
+                        && Boolean.TRUE.equals(ctx.getFromNamespace(AugmentToChoiceNamespace.class, ctx))) {
+                    final ImplicitCaseSchemaNode caseShorthand = new ImplicitCaseSchemaNode(dataSchemaNode);
+                    mutableChildNodes.put(caseShorthand.getQName(), caseShorthand);
+                    mutablePublicChildNodes.add(caseShorthand);
+                } else {
+                    mutableChildNodes.put(dataSchemaNode.getQName(), dataSchemaNode);
+                    mutablePublicChildNodes.add(dataSchemaNode);
+                }
             }
             if (stmt instanceof UsesNode) {
                 UsesNode usesNode = (UsesNode) stmt;