import org.opendaylight.yangtools.yang.parser.builder.api.TypeAwareBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceCaseBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.DeviationBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ExtensionBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.IdentitySchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.IdentityrefTypeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnionTypeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.*;
import org.opendaylight.yangtools.yang.parser.util.Comparators;
import org.opendaylight.yangtools.yang.parser.util.GroupingSort;
import org.opendaylight.yangtools.yang.parser.util.GroupingUtils;
resolveUsesTargetGrouping(modules, null);
resolveUsesForGroupings(modules, null);
resolveUsesForNodes(modules, null);
+ resolveListsKey(modules);
resolveAugments(modules, null);
resolveDeviations(modules);
resolveUsesTargetGrouping(modules, context);
resolveUsesForGroupings(modules, context);
resolveUsesForNodes(modules, context);
+ resolveListsKey(modules);
resolveAugments(modules, context);
resolveDeviationsWithContext(modules, context);
}
}
+ private void resolveListsKey(final Map<String, TreeMap<Date, ModuleBuilder>> modules) {
+ for (Map.Entry<String, TreeMap<Date, ModuleBuilder>> entry : modules.entrySet()) {
+ for (Map.Entry<Date, ModuleBuilder> inner : entry.getValue().entrySet()) {
+ ModuleBuilder module = inner.getValue();
+ List<ListSchemaNodeBuilder> allLists = module.getAllLists();
+ for (ListSchemaNodeBuilder list : allLists) {
+ List<String> keys = list.getKeys();
+ if (keys == null) {
+ list.setKeyDefinition(Collections.<QName> emptyList());
+ } else {
+ List<QName> qnames = new ArrayList<>();
+ for (String key : keys) {
+ qnames.add(list.getDataChildByName(key).getQName());
+ }
+ list.setKeyDefinition(qnames);
+ }
+
+ }
+ }
+ }
+ }
+
private void resolveUnknownNodes(final Map<String, TreeMap<Date, ModuleBuilder>> modules, final ModuleBuilder module) {
for (UnknownSchemaNodeBuilder usnb : module.getAllUnknownNodes()) {
QName nodeType = usnb.getNodeType();