X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fmodel%2Fparser%2Fimpl%2FYangModelParserImpl.java;fp=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fmodel%2Fparser%2Fimpl%2FYangModelParserImpl.java;h=35c04a8713bcae29908491b443b726a5a83aabe6;hp=50943fa7403110d17e7d811d82c0b82f0337ab39;hb=bb19f8f0c1d080a1232100b1a0e4ffa89f32a542;hpb=c85c9112b0db092bd565bcf9e5174ecfa67ae1d2 diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserImpl.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserImpl.java index 50943fa740..35c04a8713 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserImpl.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserImpl.java @@ -71,6 +71,8 @@ import org.opendaylight.controller.yang.model.parser.builder.impl.ModuleBuilder; import org.opendaylight.controller.yang.model.parser.builder.impl.TypedefBuilder; import org.opendaylight.controller.yang.model.parser.builder.impl.UnionTypeBuilder; import org.opendaylight.controller.yang.model.parser.builder.impl.UnknownSchemaNodeBuilder; +import org.opendaylight.controller.yang.model.parser.util.ModuleDependencySort; +import org.opendaylight.controller.yang.model.parser.util.ModuleDependencySort.ModuleSimple; import org.opendaylight.controller.yang.model.parser.util.ParserUtils; import org.opendaylight.controller.yang.model.parser.util.RefineHolder; import org.opendaylight.controller.yang.model.parser.util.TypeConstraints; @@ -91,7 +93,7 @@ public class YangModelParserImpl implements YangModelParser { public Set parseYangModels(final List yangFiles) { if (yangFiles != null) { final List inputStreams = new ArrayList(); - + for (final File yangFile : yangFiles) { try { inputStreams.add(new FileInputStream(yangFile)); @@ -119,7 +121,7 @@ public class YangModelParserImpl implements YangModelParser { } private Map> resolveModuleBuilders( - final List yangFileStreams) { + final List yangFileStreams) { final Map> modules = new HashMap>(); final ParseTreeWalker walker = new ParseTreeWalker(); final List trees = parseStreams(yangFileStreams); @@ -135,6 +137,9 @@ public class YangModelParserImpl implements YangModelParser { builders[i] = yangModelParser.getModuleBuilder(); } + // module dependency graph sorted + List sorted = new ModuleDependencySort(builders).sort(); + for (ModuleBuilder builder : builders) { final String builderName = builder.getName(); Date builderRevision = builder.getRevision(); @@ -377,7 +382,7 @@ public class YangModelParserImpl implements YangModelParser { tdb.setPatterns(old.getPatterns()); tdb.setFractionDigits(old.getFractionDigits()); tdb.setPath(old.getPath()); - + final TypeDefinition oldType = old.getType(); if (oldType == null) { tdb.setType(old.getTypedef());