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%2Fimpl%2FYangParserImpl.java;h=d41a2f4ea35c2e1652b75caf67d5eb8f73298382;hb=16aecfbc7dd5fb07ff09c3104e57095fb8377540;hp=d47ba8c837e341e95ecd0af7dcd4fdad8b93bfe0;hpb=bb888b20e6978a994405fa37464e7bb0357c89b6;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java index d47ba8c837..d41a2f4ea3 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java @@ -1,5 +1,6 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html @@ -15,7 +16,6 @@ import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.f import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.processAugmentation; import static org.opendaylight.yangtools.yang.parser.builder.impl.TypeUtils.resolveType; import static org.opendaylight.yangtools.yang.parser.builder.impl.TypeUtils.resolveTypeUnion; - import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.HashBiMap; @@ -34,6 +34,7 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.NavigableMap; import java.util.Set; import java.util.TreeMap; import javax.annotation.concurrent.Immutable; @@ -47,7 +48,7 @@ import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.YangContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; -import org.opendaylight.yangtools.yang.model.api.ChoiceNode; +import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; @@ -58,7 +59,6 @@ import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; -import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder; @@ -142,7 +142,7 @@ public final class YangParserImpl implements YangContextParser { // module builders sorted by dependencies List sortedBuilders = ModuleDependencySort.sort(resolved); - LinkedHashMap> modules = resolveModulesWithImports(sortedBuilders, null); + Map> modules = resolveModulesWithImports(sortedBuilders, null); Collection unsorted = build(modules).values(); Set result = new LinkedHashSet<>( ModuleDependencySort.sort(unsorted.toArray(new Module[unsorted.size()]))); @@ -219,7 +219,7 @@ public final class YangParserImpl implements YangContextParser { } final List sorted = resolveModuleBuilders(sources, context); - final Map> modules = resolveModulesWithImports(sorted, context); + final Map> modules = resolveModulesWithImports(sorted, context); final Set unsorted = new LinkedHashSet<>(build(modules).values()); if (context != null) { @@ -234,9 +234,9 @@ public final class YangParserImpl implements YangContextParser { return resolveSchemaContext(result); } - private static LinkedHashMap> resolveModulesWithImports(final List sorted, + private static Map> resolveModulesWithImports(final List sorted, final SchemaContext context) { - final LinkedHashMap> modules = orderModules(sorted); + final Map> modules = orderModules(sorted); for (ModuleBuilder module : sorted) { if (module != null) { for (ModuleImport imp : module.getImports().values()) { @@ -245,7 +245,7 @@ public final class YangParserImpl implements YangContextParser { if (targetModule == null) { Module result = findModuleFromContext(context, module, prefix, 0); targetModule = new ModuleBuilder(result); - TreeMap map = modules.get(targetModule.getNamespace()); + NavigableMap map = modules.get(targetModule.getNamespace()); if (map == null) { map = new TreeMap<>(); map.put(targetModule.getRevision(), targetModule); @@ -336,7 +336,7 @@ public final class YangParserImpl implements YangContextParser { public Collection buildModules(final Collection builders) { Collection unsorted = resolveSubmodules(builders); List sorted = ModuleDependencySort.sort(unsorted); - Map> modules = resolveModulesWithImports(sorted, null); + Map> modules = resolveModulesWithImports(sorted, null); Map builderToModule = build(modules); return builderToModule.values(); } @@ -355,7 +355,7 @@ public final class YangParserImpl implements YangContextParser { Map sourceToBuilder = resolveSources(sources, context); // sort and check for duplicates List sorted = ModuleDependencySort.sort(sourceToBuilder.values()); - Map> modules = resolveModulesWithImports(sorted, null); + Map> modules = resolveModulesWithImports(sorted, null); Map builderToModule = build(modules); Map builderToSource = HashBiMap.create(sourceToBuilder).inverse(); sorted = ModuleDependencySort.sort(builderToModule.keySet()); @@ -384,7 +384,7 @@ public final class YangParserImpl implements YangContextParser { return resolveSubmodules(builders); } - private Map parseSourcesToBuilders(final Collection sources, + private static Map parseSourcesToBuilders(final Collection sources, final SchemaContext context) throws IOException, YangSyntaxErrorException { final ParseTreeWalker walker = new ParseTreeWalker(); final Map sourceToTree = parseYangSources(sources); @@ -393,7 +393,7 @@ public final class YangParserImpl implements YangContextParser { // validate yang new YangModelBasicValidator(walker).validate(sourceToTree.values()); - Map> namespaceContext = BuilderUtils.createYangNamespaceContext( + Map> namespaceContext = BuilderUtils.createYangNamespaceContext( sourceToTree.values(), Optional.fromNullable(context)); YangParserListenerImpl yangModelParser; for (Map.Entry entry : sourceToTree.entrySet()) { @@ -417,12 +417,12 @@ public final class YangParserImpl implements YangContextParser { private Map resolveSubmodules(final Map builders) { Map modules = new HashMap<>(); - Map> submodules = new HashMap<>(); + Map> submodules = new HashMap<>(); for (Map.Entry entry : builders.entrySet()) { ModuleBuilder builder = entry.getValue(); if (builder.isSubmodule()) { String submoduleName = builder.getName(); - TreeMap map = submodules.get(submoduleName); + NavigableMap map = submodules.get(submoduleName); if (map == null) { map = new TreeMap<>(); map.put(builder.getRevision(), builder); @@ -444,11 +444,11 @@ public final class YangParserImpl implements YangContextParser { private Collection resolveSubmodules(final Collection builders) { Collection modules = new HashSet<>(); - Map> submodules = new HashMap<>(); + Map> submodules = new HashMap<>(); for (ModuleBuilder builder : builders) { if (builder.isSubmodule()) { String submoduleName = builder.getName(); - TreeMap map = submodules.get(submoduleName); + NavigableMap map = submodules.get(submoduleName); if (map == null) { map = new TreeMap<>(); map.put(builder.getRevision(), builder); @@ -479,10 +479,10 @@ public final class YangParserImpl implements YangContextParser { * @return collection of module builders with resolved submodules */ private void resolveSubmodules(final ModuleBuilder module, - final Map> submodules) { + final Map> submodules) { Map includes = module.getIncludedModules(); for (Map.Entry entry : includes.entrySet()) { - TreeMap subs = submodules.get(entry.getKey()); + NavigableMap subs = submodules.get(entry.getKey()); if (subs == null) { throw new YangParseException("Failed to find references submodule " + entry.getKey() + " in module " + module.getName()); @@ -500,14 +500,14 @@ public final class YangParserImpl implements YangContextParser { } } - if (submodule.getIncludedModules().size() > 0) { + if (!submodule.getIncludedModules().isEmpty()) { resolveSubmodules(submodule, submodules); } addSubmoduleToModule(submodule, module); } } - private void addSubmoduleToModule(final ModuleBuilder submodule, final ModuleBuilder module) { + private static void addSubmoduleToModule(final ModuleBuilder submodule, final ModuleBuilder module) { module.addSubmodule(submodule); submodule.setParent(module); module.getDirtyNodes().addAll(submodule.getDirtyNodes()); @@ -564,8 +564,8 @@ public final class YangParserImpl implements YangContextParser { * topologically sorted modules * @return modules ordered by namespace and revision */ - private static LinkedHashMap> orderModules(final List modules) { - final LinkedHashMap> result = new LinkedHashMap<>(); + private static Map> orderModules(final List modules) { + final Map> result = new LinkedHashMap<>(); for (final ModuleBuilder builder : modules) { if (builder == null) { continue; @@ -577,7 +577,7 @@ public final class YangParserImpl implements YangContextParser { rev = new Date(0); } - TreeMap builderByRevision = result.get(ns); + NavigableMap builderByRevision = result.get(ns); if (builderByRevision == null) { builderByRevision = new TreeMap<>(); builderByRevision.put(rev, builder); @@ -607,7 +607,7 @@ public final class YangParserImpl implements YangContextParser { // if this is submodule, add parent to filtered and pick its imports if (main.isSubmodule()) { - TreeMap dependencies = new TreeMap<>(); + NavigableMap dependencies = new TreeMap<>(); for (ModuleBuilder mb : other) { if (mb.getName().equals(main.getBelongsTo())) { dependencies.put(mb.getRevision(), mb); @@ -627,11 +627,9 @@ public final class YangParserImpl implements YangContextParser { filterImports(builder, other, filtered); } } else { - if (mi.getRevision().equals(builder.getRevision())) { - if (!filtered.contains(builder)) { - filtered.add(builder); - filterImports(builder, other, filtered); - } + if (!filtered.contains(builder) && mi.getRevision().equals(builder.getRevision())) { + filtered.add(builder); + filterImports(builder, other, filtered); } } } @@ -639,7 +637,7 @@ public final class YangParserImpl implements YangContextParser { } } - private Map parseYangSources(final Collection sources) throws IOException, YangSyntaxErrorException { + private static Map parseYangSources(final Collection sources) throws IOException, YangSyntaxErrorException { final Map trees = new HashMap<>(); for (ByteSource source : sources) { try (InputStream stream = source.openStream()) { @@ -706,7 +704,7 @@ public final class YangParserImpl implements YangContextParser { * all loaded modules * @return modules mapped on their builders */ - private Map build(final Map> modules) { + private Map build(final Map> modules) { resolveDirtyNodes(modules); resolveAugmentsTargetPath(modules); resolveUsesTargetGrouping(modules); @@ -718,7 +716,7 @@ public final class YangParserImpl implements YangContextParser { // build final Map result = new LinkedHashMap<>(); - for (Map.Entry> entry : modules.entrySet()) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry childEntry : entry.getValue().entrySet()) { final ModuleBuilder moduleBuilder = childEntry.getValue(); final Module module = moduleBuilder.build(); @@ -734,8 +732,8 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void resolveDirtyNodes(final Map> modules) { - for (Map.Entry> entry : modules.entrySet()) { + private static void resolveDirtyNodes(final Map> modules) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry childEntry : entry.getValue().entrySet()) { final ModuleBuilder module = childEntry.getValue(); resolveUnknownNodes(modules, module); @@ -753,7 +751,7 @@ public final class YangParserImpl implements YangContextParser { * @param module * current module */ - private void resolveDirtyNodes(final Map> modules, final ModuleBuilder module) { + private static void resolveDirtyNodes(final Map> modules, final ModuleBuilder module) { final Set dirtyNodes = module.getDirtyNodes(); if (!dirtyNodes.isEmpty()) { for (TypeAwareBuilder nodeToResolve : dirtyNodes) { @@ -784,10 +782,10 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void resolveAugmentsTargetPath(final Map> modules) { + private void resolveAugmentsTargetPath(final Map> modules) { // collect augments from all loaded modules final List allAugments = new ArrayList<>(); - for (Map.Entry> entry : modules.entrySet()) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry inner : entry.getValue().entrySet()) { allAugments.addAll(inner.getValue().getAllAugments()); } @@ -819,8 +817,8 @@ public final class YangParserImpl implements YangContextParser { } } - private SchemaPath findUsesAugmentTargetNodePath(DataNodeContainerBuilder usesParent, - AugmentationSchemaBuilder augment) { + private static SchemaPath findUsesAugmentTargetNodePath(final DataNodeContainerBuilder usesParent, + final AugmentationSchemaBuilder augment) { QName parentQName = usesParent.getQName(); final QNameModule qnm; if (parentQName == null) { @@ -870,7 +868,7 @@ public final class YangParserImpl implements YangContextParser { * @param augments * augments to check */ - private void checkAugmentMandatoryNodes(final Collection augments) { + private static void checkAugmentMandatoryNodes(final Collection augments) { for (AugmentationSchemaBuilder augment : augments) { URI augmentTargetNs = augment.getTargetPath().getPathFromRoot().iterator().next().getNamespace(); Date augmentTargetRev = augment.getTargetPath().getPathFromRoot().iterator().next().getRevision(); @@ -897,9 +895,9 @@ public final class YangParserImpl implements YangContextParser { * all loaded modules topologically sorted (based on dependencies * between each other) */ - private void resolveAugments(final Map> modules) { + private static void resolveAugments(final Map> modules) { List all = new ArrayList<>(); - for (Map.Entry> entry : modules.entrySet()) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry inner : entry.getValue().entrySet()) { all.add(inner.getValue()); } @@ -934,8 +932,8 @@ public final class YangParserImpl implements YangContextParser { * all loaded modules * @return true if augment process succeed */ - private boolean resolveUsesAugment(final AugmentationSchemaBuilder augment, final ModuleBuilder module, - final Map> modules) { + private static boolean resolveUsesAugment(final AugmentationSchemaBuilder augment, final ModuleBuilder module, + final Map> modules) { if (augment.isResolved()) { return true; } @@ -994,8 +992,8 @@ public final class YangParserImpl implements YangContextParser { * all loaded modules * @return true if augment process succeed */ - private boolean resolveAugment(final AugmentationSchemaBuilder augment, final ModuleBuilder module, - final Map> modules) { + private static boolean resolveAugment(final AugmentationSchemaBuilder augment, final ModuleBuilder module, + final Map> modules) { if (augment.isResolved()) { return true; } @@ -1017,8 +1015,8 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void resolveIdentities(final Map> modules) { - for (Map.Entry> entry : modules.entrySet()) { + private static void resolveIdentities(final Map> modules) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry inner : entry.getValue().entrySet()) { ModuleBuilder module = inner.getValue(); final Set identities = module.getAddedIdentities(); @@ -1029,7 +1027,8 @@ public final class YangParserImpl implements YangContextParser { } } - private void resolveIdentity(final ModuleBuilder module, final IdentitySchemaNodeBuilder identity) { + private static void resolveIdentity(final ModuleBuilder module, + final IdentitySchemaNodeBuilder identity) { final String baseIdentityName = identity.getBaseIdentityName(); if (baseIdentityName != null) { IdentitySchemaNodeBuilder result = null; @@ -1037,15 +1036,34 @@ public final class YangParserImpl implements YangContextParser { final int line = identity.getLine(); String[] splittedBase = baseIdentityName.split(":"); if (splittedBase.length > 2) { - throw new YangParseException(module.getName(), line, "Failed to parse identityref base: " - + baseIdentityName); + throw new YangParseException(module.getName(), line, + "Failed to parse identityref base: " + + baseIdentityName); } String prefix = splittedBase[0]; String name = splittedBase[1]; - ModuleBuilder dependentModule = BuilderUtils.getModuleByPrefix(module, prefix); - result = BuilderUtils.findIdentity(dependentModule.getAddedIdentities(), name); + + if (prefix.equals(module.getPrefix()) + && name.equals(identity.getQName().getLocalName())) { + throw new YangParseException(module.getName(), + identity.getLine(), + "Failed to parse base, identity name equals base identity name: " + + baseIdentityName); + } + + ModuleBuilder dependentModule = BuilderUtils.getModuleByPrefix( + module, prefix); + result = BuilderUtils.findIdentity( + dependentModule.getAddedIdentities(), name); } else { - result = BuilderUtils.findIdentity(module.getAddedIdentities(), baseIdentityName); + if (baseIdentityName.equals(identity.getQName().getLocalName())) { + throw new YangParseException(module.getName(), + identity.getLine(), + "Failed to parse base, identity name equals base identity name: " + + baseIdentityName); + } + result = BuilderUtils.findIdentity(module.getAddedIdentities(), + baseIdentityName); } identity.setBaseIdentity(result); } @@ -1057,9 +1075,9 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void resolveUsesTargetGrouping(final Map> modules) { + private static void resolveUsesTargetGrouping(final Map> modules) { final List allUses = new ArrayList<>(); - for (Map.Entry> entry : modules.entrySet()) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry inner : entry.getValue().entrySet()) { allUses.addAll(inner.getValue().getAllUsesNodes()); } @@ -1078,9 +1096,9 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void resolveUsesForGroupings(final Map> modules) { + private static void resolveUsesForGroupings(final Map> modules) { final Set allGroupings = new HashSet<>(); - for (Map.Entry> entry : modules.entrySet()) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry inner : entry.getValue().entrySet()) { ModuleBuilder module = inner.getValue(); allGroupings.addAll(module.getAllGroupings()); @@ -1102,8 +1120,8 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void resolveUsesForNodes(final Map> modules) { - for (Map.Entry> entry : modules.entrySet()) { + private static void resolveUsesForNodes(final Map> modules) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry inner : entry.getValue().entrySet()) { ModuleBuilder module = inner.getValue(); List usesNodes = module.getAllUsesNodes(); @@ -1124,7 +1142,7 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void resolveUses(final UsesNodeBuilder usesNode, final Map> modules) { + private static void resolveUses(final UsesNodeBuilder usesNode, final Map> modules) { if (!usesNode.isResolved()) { DataNodeContainerBuilder parent = usesNode.getParent(); ModuleBuilder module = BuilderUtils.getParentModule(parent); @@ -1147,7 +1165,7 @@ public final class YangParserImpl implements YangContextParser { } } - private int nodeAfterUsesIndex(final UsesNodeBuilder usesNode) { + private static int nodeAfterUsesIndex(final UsesNodeBuilder usesNode) { DataNodeContainerBuilder parent = usesNode.getParent(); int usesLine = usesNode.getLine(); @@ -1158,11 +1176,9 @@ public final class YangParserImpl implements YangContextParser { DataSchemaNodeBuilder nextNodeAfterUses = null; for (DataSchemaNodeBuilder childNode : childNodes) { - if (!(childNode.isAddedByUses()) && !(childNode.isAugmenting())) { - if (childNode.getLine() > usesLine) { - nextNodeAfterUses = childNode; - break; - } + if (!childNode.isAddedByUses() && !childNode.isAugmenting() && childNode.getLine() > usesLine) { + nextNodeAfterUses = childNode; + break; } } @@ -1183,7 +1199,7 @@ public final class YangParserImpl implements YangContextParser { * @param module * current module */ - private void resolveUnknownNodes(final Map> modules, final ModuleBuilder module) { + private static void resolveUnknownNodes(final Map> modules, final ModuleBuilder module) { for (UnknownSchemaNodeBuilder usnb : module.getAllUnknownNodes()) { QName nodeType = usnb.getNodeType(); String localName = usnb.getNodeType().getLocalName(); @@ -1212,7 +1228,7 @@ public final class YangParserImpl implements YangContextParser { } } - private ExtensionBuilder findExtBuilder(final String name, final Collection extensions) { + private static ExtensionBuilder findExtBuilder(final String name, final Collection extensions) { for (ExtensionBuilder extension : extensions) { if (extension.getQName().getLocalName().equals(name)) { return extension; @@ -1221,7 +1237,7 @@ public final class YangParserImpl implements YangContextParser { return null; } - private ExtensionDefinition findExtDef(final String name, final Collection extensions) { + private static ExtensionDefinition findExtDef(final String name, final Collection extensions) { for (ExtensionDefinition extension : extensions) { if (extension.getQName().getLocalName().equals(name)) { return extension; @@ -1238,23 +1254,23 @@ public final class YangParserImpl implements YangContextParser { * @param modules * all loaded modules */ - private void checkChoiceCasesForDuplicityQNames(final Map> modules) { - for (Map.Entry> entry : modules.entrySet()) { + private void checkChoiceCasesForDuplicityQNames(final Map> modules) { + for (Map.Entry> entry : modules.entrySet()) { for (Map.Entry childEntry : entry.getValue().entrySet()) { final ModuleBuilder moduleBuilder = childEntry.getValue(); final Module module = moduleBuilder.build(); - final List allChoicesFromModule = getChoicesFrom(module); + final List allChoicesFromModule = getChoicesFrom(module); - for (ChoiceNode choiceNode : allChoicesFromModule) { + for (ChoiceSchemaNode choiceNode : allChoicesFromModule) { findDuplicityNodesIn(choiceNode, module, moduleBuilder, modules); } } } } - private void findDuplicityNodesIn(final ChoiceNode choiceNode, final Module module, final ModuleBuilder moduleBuilder, - final Map> modules) { - final Set duplicityTestSet = new HashSet(); + private static void findDuplicityNodesIn(final ChoiceSchemaNode choiceNode, final Module module, final ModuleBuilder moduleBuilder, + final Map> modules) { + final Set duplicityTestSet = new HashSet<>(); for (ChoiceCaseNode choiceCaseNode : choiceNode.getCases()) { @@ -1274,8 +1290,8 @@ public final class YangParserImpl implements YangContextParser { } } - private List getChoicesFrom(final Module module) { - final List allChoices = new ArrayList(); + private List getChoicesFrom(final Module module) { + final List allChoices = new ArrayList<>(); for (DataSchemaNode dataSchemaNode : module.getChildNodes()) { findChoicesIn(dataSchemaNode, allChoices); @@ -1283,7 +1299,7 @@ public final class YangParserImpl implements YangContextParser { return allChoices; } - private void findChoicesIn(final SchemaNode schemaNode, final Collection choiceNodes) { + private void findChoicesIn(final SchemaNode schemaNode, final Collection choiceNodes) { if (schemaNode instanceof ContainerSchemaNode) { final ContainerSchemaNode contSchemaNode = (ContainerSchemaNode) schemaNode; for (DataSchemaNode dataSchemaNode : contSchemaNode.getChildNodes()) { @@ -1294,8 +1310,8 @@ public final class YangParserImpl implements YangContextParser { for (DataSchemaNode dataSchemaNode : listSchemaNode.getChildNodes()) { findChoicesIn(dataSchemaNode, choiceNodes); } - } else if (schemaNode instanceof ChoiceNode) { - choiceNodes.add((ChoiceNode) schemaNode); + } else if (schemaNode instanceof ChoiceSchemaNode) { + choiceNodes.add((ChoiceSchemaNode) schemaNode); } }