Bug 2191: Invalid use of addType in ChoiceCaseBuilder 49/12149/1
authorLadislav Borak <lborak@cisco.com>
Fri, 17 Oct 2014 08:04:22 +0000 (10:04 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Wed, 22 Oct 2014 12:13:28 +0000 (12:13 +0000)
1) in CoppyUtils removed from method copy functionality about copying
   typedefs and grouping from old ChoiceCaseBuilder, which throw in
   this implementation YangParseException

2) in AbstractDocumentedDataNodeContainerBuilder removed final modifier
   from method addGrouping because this method must be overriden in
   ChoiceCaseBuilder to throw YangParseException

3) in ChoiceCaseBuilder were overriden addGrouping method to throw
   YangParseException becaouse by RFC 6020 is not allowed that
   choice case has grouping

Change-Id: Ic06524f3489a36c73f07c8b44701895dc0e9896e
Signed-off-by: Ladislav Borak <lborak@cisco.com>
(cherry picked from commit 5eb73b6c47326147af391608ee22ab8f8ab2c87c)

yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ChoiceCaseBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/CopyUtils.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractDocumentedDataNodeContainerBuilder.java

index c97eb14ebefd889e560a9afd96f43b01e65aaa89..2d823c5113dbc41ff4cff64a5df580f7dcb09a28 100644 (file)
@@ -7,10 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.parser.builder.impl;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
-
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
@@ -22,6 +25,7 @@ import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuil
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationTargetBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
@@ -29,11 +33,6 @@ import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDat
 import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
 public final class ChoiceCaseBuilder extends AbstractDocumentedDataNodeContainerBuilder implements DataSchemaNodeBuilder,
 AugmentationTargetBuilder {
     private ChoiceCaseNodeImpl instance;
@@ -148,6 +147,11 @@ AugmentationTargetBuilder {
         throw new YangParseException(getModuleName(), typedefBuilder.getLine(), "Can not add type definition to choice case.");
     }
 
+    @Override
+    public void addGrouping(GroupingBuilder groupingBuilder) {
+        throw new YangParseException(getModuleName(), groupingBuilder.getLine(), "Can not add grouping to choice case.");
+    }
+
     @Override
     public boolean isConfiguration() {
         return false;
index cb72d9a2a4f87ef6d6844d7917d78d9eeef1a286..7f2c6895874690f098d5976eb1033d2db2daf0ef 100644 (file)
@@ -129,13 +129,6 @@ public final class CopyUtils {
         for (DataSchemaNodeBuilder childNode : old.getChildNodeBuilders()) {
             copy.addChildNode(copy(childNode, copy, updateQName));
         }
-        copy.getGroupings().addAll(old.getGroupings());
-        for (GroupingBuilder grouping : old.getGroupingBuilders()) {
-            copy.addGrouping(copy(grouping, copy, updateQName));
-        }
-        for (TypeDefinitionBuilder tdb : old.getTypeDefinitionBuilders()) {
-            copy.addTypedef(copy(tdb, copy, updateQName));
-        }
         for (UsesNodeBuilder oldUses : old.getUsesNodeBuilders()) {
             copy.addUsesNode(copyUses(oldUses, copy));
         }
index 7226aa216b3083ba33686a442855e728c2da2140..5bc45b2e3c93f5c44beb299cf3229980f6cb29da 100644 (file)
@@ -154,7 +154,7 @@ public abstract class AbstractDocumentedDataNodeContainerBuilder extends Abstrac
     }
 
     @Override
-    public final void addGrouping(final GroupingBuilder grouping) {
+    public void addGrouping(final GroupingBuilder grouping) {
         checkNotSealed();
         QName groupingName = grouping.getQName();
         for (GroupingBuilder addedGrouping : addedGroupings) {