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%2Futil%2FModuleDependencySort.java;h=7b543b730702718226447a1ba3efde9ee4cc9a17;hb=b787ab883d903072ed420724d05299f3473d7867;hp=d962c3cfa96caa216e33796a182cce91a0d6a4ef;hpb=c6b4017ff4babad7e237c56ebe299efc90a6f990;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ModuleDependencySort.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ModuleDependencySort.java index d962c3cfa9..7b543b7307 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ModuleDependencySort.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ModuleDependencySort.java @@ -14,6 +14,7 @@ import com.google.common.base.Optional; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; + import java.net.URI; import java.util.ArrayList; import java.util.Collection; @@ -23,11 +24,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; + import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder; +import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.Node; import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.NodeImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,6 +45,13 @@ public final class ModuleDependencySort { private static final Date DEFAULT_REVISION = new Date(0); private static final Logger LOGGER = LoggerFactory.getLogger(ModuleDependencySort.class); + private static final Function TOPOLOGY_FUNCTION = new Function() { + @Override + public Module apply(final TopologicalSort.Node input) { + ModuleOrModuleBuilder moduleOrModuleBuilder = ((ModuleNodeImpl) input).getReference(); + return moduleOrModuleBuilder.getModule(); + } + }; /** * It is not desirable to instance this class @@ -107,14 +117,7 @@ public final class ModuleDependencySort { List sorted = sortInternal(ModuleOrModuleBuilder.fromAll(asList(modules), Collections.emptyList())); // Cast to Module from Node and return - return Lists.transform(sorted, new Function() { - - @Override - public Module apply(final TopologicalSort.Node input) { - ModuleOrModuleBuilder moduleOrModuleBuilder = ((ModuleNodeImpl) input).getReference(); - return moduleOrModuleBuilder.getModule(); - } - }); + return Lists.transform(sorted, TOPOLOGY_FUNCTION); } private static List sortInternal(final Iterable modules) { @@ -153,7 +156,7 @@ public final class ModuleDependencySort { String fromName; Date fromRevision; - Set imports; + Collection imports; URI ns; if (mmb.isModule()) { @@ -166,7 +169,7 @@ public final class ModuleDependencySort { ModuleBuilder moduleBuilder = mmb.getModuleBuilder(); fromName = moduleBuilder.getName(); fromRevision = moduleBuilder.getRevision(); - imports = moduleBuilder.getModuleImports(); + imports = moduleBuilder.getImports().values(); ns = moduleBuilder.getNamespace(); } @@ -372,12 +375,12 @@ class ModuleOrModuleBuilder { private final Optional maybeModule; private final Optional maybeModuleBuilder; - ModuleOrModuleBuilder(Module module) { + ModuleOrModuleBuilder(final Module module) { maybeModule = Optional.of(module); maybeModuleBuilder = Optional.absent(); } - ModuleOrModuleBuilder(ModuleBuilder moduleBuilder) { + ModuleOrModuleBuilder(final ModuleBuilder moduleBuilder) { maybeModule = Optional.absent(); maybeModuleBuilder = Optional.of(moduleBuilder); } @@ -394,7 +397,7 @@ class ModuleOrModuleBuilder { return maybeModuleBuilder.get(); } - static List fromAll(Collection modules, Collection moduleBuilders) { + static List fromAll(final Collection modules, final Collection moduleBuilders) { List result = new ArrayList<>(modules.size() + moduleBuilders.size()); for(Module m: modules){ result.add(new ModuleOrModuleBuilder(m));