From 7d96c9870920f2e36cc1e008ac519bf6cc3f23f1 Mon Sep 17 00:00:00 2001 From: Martin Vitez Date: Wed, 22 Jan 2014 16:28:46 +0100 Subject: [PATCH] Improved parsing of key in list schema node. Signed-off-by: Martin Vitez --- .../builder/impl/ListSchemaNodeBuilder.java | 19 ++++++++------- .../yang/parser/impl/YangParserImpl.java | 24 ------------------- .../yangtools/yang/parser/util/CopyUtils.java | 2 +- 3 files changed, 12 insertions(+), 33 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ListSchemaNodeBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ListSchemaNodeBuilder.java index 36e6638537..bdec523961 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ListSchemaNodeBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ListSchemaNodeBuilder.java @@ -89,6 +89,17 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde } instance.addChildNodes(childNodes); + // KEY + if (keys == null) { + instance.keyDefinition = Collections. emptyList(); + } else { + List qnames = new ArrayList<>(); + for (String key : keys) { + qnames.add(instance.getDataChildByName(key).getQName()); + } + instance.keyDefinition = qnames; + } + // TYPEDEFS for (TypeDefinitionBuilder entry : addedTypedefs) { typedefs.add(entry.build()); @@ -203,14 +214,6 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde this.keys = keys; } - public List getKeyDefinition() { - return instance.keyDefinition; - } - - public void setKeyDefinition(final List keyDefinition) { - instance.keyDefinition = keyDefinition; - } - @Override public boolean isAugmenting() { return instance.augmenting; 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 09862a4647..86ddd4bdd6 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 @@ -480,7 +480,6 @@ public final class YangParserImpl implements YangModelParser { resolveUsesTargetGrouping(modules, null); resolveUsesForGroupings(modules, null); resolveUsesForNodes(modules, null); - resolveListsKey(modules); resolveAugments(modules, null); resolveDeviations(modules); @@ -504,7 +503,6 @@ public final class YangParserImpl implements YangModelParser { resolveUsesTargetGrouping(modules, context); resolveUsesForGroupings(modules, context); resolveUsesForNodes(modules, context); - resolveListsKey(modules); resolveAugments(modules, context); resolveDeviationsWithContext(modules, context); @@ -1053,28 +1051,6 @@ public final class YangParserImpl implements YangModelParser { } } - private void resolveListsKey(final Map> modules) { - for (Map.Entry> entry : modules.entrySet()) { - for (Map.Entry inner : entry.getValue().entrySet()) { - ModuleBuilder module = inner.getValue(); - List allLists = module.getAllLists(); - for (ListSchemaNodeBuilder list : allLists) { - List keys = list.getKeys(); - if (keys == null) { - list.setKeyDefinition(Collections. emptyList()); - } else { - List qnames = new ArrayList<>(); - for (String key : keys) { - qnames.add(list.getDataChildByName(key).getQName()); - } - list.setKeyDefinition(qnames); - } - - } - } - } - } - private void resolveUnknownNodes(final Map> modules, final ModuleBuilder module) { for (UnknownSchemaNodeBuilder usnb : module.getAllUnknownNodes()) { QName nodeType = usnb.getNodeType(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java index 05e1e0c194..91a04e8752 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java @@ -279,7 +279,7 @@ public final class CopyUtils { } copy.setUserOrdered(old.isUserOrdered()); - copy.setKeyDefinition(old.getKeyDefinition()); + copy.setKeys(old.getKeys()); return copy; } -- 2.36.6