X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2Feffective%2FAbstractEffectiveDocumentedDataNodeContainer.java;h=de640644cd12bd69efca2c3df6e8b17f41d9a3b4;hb=c652590993b1e4660d5d557868665dbfa634ed27;hp=5056929b80d9be52ac22ef0ccadca86a593a434a;hpb=30c67c4d780e897d972d60bb79d546b512516f90;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveDocumentedDataNodeContainer.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveDocumentedDataNodeContainer.java index 5056929b80..de640644cd 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveDocumentedDataNodeContainer.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AbstractEffectiveDocumentedDataNodeContainer.java @@ -1,4 +1,4 @@ -/** +/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the @@ -7,18 +7,13 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; -import org.opendaylight.yangtools.yang.model.util.ExtendedType; - -import java.util.LinkedHashSet; -import java.util.LinkedHashMap; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; import java.util.Collection; import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.Map; -import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import java.util.Set; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -26,16 +21,19 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UsesNode; +import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -public abstract class AbstractEffectiveDocumentedDataNodeContainer> +abstract class AbstractEffectiveDocumentedDataNodeContainer> extends AbstractEffectiveDocumentedNode implements DataNodeContainer { - private final ImmutableMap childNodes; - private final ImmutableSet groupings; - private final ImmutableSet uses; - private final ImmutableSet> typeDefinitions; - private final ImmutableSet publicChildNodes; + private final Map childNodes; + private final Set groupings; + private final Set uses; + private final Set> typeDefinitions; + private final Set publicChildNodes; protected AbstractEffectiveDocumentedDataNodeContainer( final StmtContext ctx) { @@ -51,10 +49,9 @@ public abstract class AbstractEffectiveDocumentedDataNodeContainer effectiveStatement : effectiveSubstatements) { if (effectiveStatement instanceof DataSchemaNode) { - DataSchemaNode dataSchemaNode = (DataSchemaNode) effectiveStatement; + final DataSchemaNode dataSchemaNode = (DataSchemaNode) effectiveStatement; if (!mutableChildNodes.containsKey(dataSchemaNode.getQName())) { - mutableChildNodes.put(dataSchemaNode.getQName(), - dataSchemaNode); + mutableChildNodes.put(dataSchemaNode.getQName(), dataSchemaNode); mutablePublicChildNodes.add(dataSchemaNode); } else { throw EffectiveStmtUtils.createNameCollisionSourceException(ctx, effectiveStatement); @@ -70,9 +67,9 @@ public abstract class AbstractEffectiveDocumentedDataNodeContainer type = typeDef.getTypeDefinition(); + if (!mutableTypeDefinitions.contains(type)) { + mutableTypeDefinitions.add(type); } else { throw EffectiveStmtUtils.createNameCollisionSourceException(ctx, effectiveStatement); }