X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Futil%2FModuleDependencySort.java;h=f7e270ea1d5badf84ef605c51a93da8422739e9d;hb=3223e613462b4a50d87e43b1666e1ad5faf8cce3;hp=728a1698a864579818cb9a2648ccc6dec4ea25b6;hpb=90aa584ea80e73e33391a8ce0779f298bd55a550;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 728a1698a8..f7e270ea1d 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 @@ -28,6 +28,7 @@ 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 +43,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 +115,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) { @@ -145,7 +146,7 @@ public final class ModuleDependencySort { */ private static void processDependencies(final Map> moduleGraph, final Iterable mmbs) { - Map allNS = new HashMap<>(); + Map allNS = new HashMap<>(); // Create edges in graph for (ModuleOrModuleBuilder mmb : mmbs) { @@ -172,15 +173,15 @@ public final class ModuleDependencySort { // check for existence of module with same namespace if (allNS.containsKey(ns)) { - Object mod = allNS.get(ns); + ModuleOrModuleBuilder mod = allNS.get(ns); String name = null; Date revision = null; - if (mod instanceof Module) { - name = ((Module) mod).getName(); - revision = ((Module) mod).getRevision(); - } else if (mod instanceof ModuleBuilder) { - name = ((ModuleBuilder) mod).getName(); - revision = ((ModuleBuilder) mod).getRevision(); + if (mod.isModule()) { + name = mod.getModule().getName(); + revision = mod.getModule().getRevision(); + } else if (mod.isModuleBuilder()) { + name = mod.getModuleBuilder().getName(); + revision = mod.getModuleBuilder().getRevision(); } if (!(fromName.equals(name))) { LOGGER.warn( @@ -372,12 +373,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 +395,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));