From 5eb73b6c47326147af391608ee22ab8f8ab2c87c Mon Sep 17 00:00:00 2001 From: Ladislav Borak Date: Fri, 17 Oct 2014 10:04:22 +0200 Subject: [PATCH] Bug 2191: Invalid use of addType in ChoiceCaseBuilder 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 --- .../parser/builder/impl/ChoiceCaseBuilder.java | 16 ++++++++++------ .../yang/parser/builder/impl/CopyUtils.java | 7 ------- ...stractDocumentedDataNodeContainerBuilder.java | 2 +- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ChoiceCaseBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ChoiceCaseBuilder.java index c97eb14ebe..2d823c5113 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ChoiceCaseBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ChoiceCaseBuilder.java @@ -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; diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/CopyUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/CopyUtils.java index cb72d9a2a4..7f2c689587 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/CopyUtils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/CopyUtils.java @@ -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)); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractDocumentedDataNodeContainerBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractDocumentedDataNodeContainerBuilder.java index 7226aa216b..5bc45b2e3c 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractDocumentedDataNodeContainerBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractDocumentedDataNodeContainerBuilder.java @@ -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) { -- 2.36.6