import java.util.Set;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
+import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.choice.ImplicitChoiceCaseNode;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.choice.ImplicitCaseSchemaNode;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.source.AugmentToChoiceNamespace;
public abstract class AbstractEffectiveDocumentedDataNodeContainer<A, D extends DeclaredStatement<A>>
- extends AbstractEffectiveDocumentedNode<A, D> implements DataNodeContainer {
+ extends AbstractSchemaEffectiveDocumentedNode<A, D> implements DataNodeContainer {
private final Map<QName, DataSchemaNode> childNodes;
private final Set<GroupingDefinition> groupings;
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 ChoiceCaseNode || stmt instanceof ChoiceSchemaNode)
- && YangValidationBundles.SUPPORTED_CASE_SHORTHANDS.contains(stmt.statementDefinition())
- && Boolean.TRUE.equals(ctx.getFromNamespace(AugmentToChoiceNamespace.class, ctx))) {
- final ImplicitChoiceCaseNode caseShorthand = new ImplicitChoiceCaseNode(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;