Do not create temporary array for module sorting
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / util / ModuleDependencySort.java
index e924ddeb559257b71a37f659e52c4155fb096338..ebf6fe278d96e66d70aaf2c0eec7f97b326dd1ee 100644 (file)
@@ -61,7 +61,18 @@ public final class ModuleDependencySort {
      *         returned order.
      */
     public static List<Module> sort(final Module... modules) {
-        final List<TopologicalSort.Node> sorted = sortInternal(Arrays.asList(modules));
+        return sort(Arrays.asList(modules));
+    }
+
+    /**
+     * Topological sort of module dependency graph.
+     *
+     * @param modules YANG modules
+     * @return Sorted list of Modules. Modules can be further processed in
+     *         returned order.
+     */
+    public static List<Module> sort(final Iterable<Module> modules) {
+        final List<TopologicalSort.Node> sorted = sortInternal(modules);
         // Cast to Module from Node and return
         return Lists.transform(sorted, TOPOLOGY_FUNCTION);
     }
@@ -115,7 +126,7 @@ public final class ModuleDependencySort {
                 final Module mod = allNS.get(ns);
                 final String name = mod.getName();
                 final Date revision = mod.getRevision();
-                if (!(fromName.equals(name))) {
+                if (!fromName.equals(name)) {
                     LOGGER.warn(
                             "Error while sorting module [{}, {}]: module with same namespace ({}) already loaded: [{}, {}]",
                             fromName, fromRevision, ns, name, revision);