Do not create temporary array for module sorting
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / EffectiveSchemaContext.java
index 0223bdf1399c1b1d0d06197f29c31756627f5766..5e670f5af2476f2ef2d8e69704c40805fd06a678 100644 (file)
@@ -43,23 +43,18 @@ public final class EffectiveSchemaContext extends AbstractEffectiveSchemaContext
         this.rootDeclaredStatements = ImmutableList.copyOf(rootDeclaredStatements);
         this.rootEffectiveStatements = ImmutableList.copyOf(rootEffectiveStatements);
 
-        Set<Module> modulesInit = new HashSet<>();
+        final Set<Module> modulesInit = new HashSet<>();
         for (EffectiveStatement<?, ?> rootEffectiveStatement : rootEffectiveStatements) {
             if (rootEffectiveStatement instanceof ModuleEffectiveStatementImpl) {
                 Module module = (Module) rootEffectiveStatement;
                 modulesInit.add(module);
             }
         }
+        this.modules = ImmutableSet.copyOf(ModuleDependencySort.sort(modulesInit));
 
-        Module[] moduleArray = new Module[modulesInit.size()];
-        List<Module> sortedModuleList = ModuleDependencySort.sort(modulesInit.toArray(moduleArray));
-        this.modules = ImmutableSet.copyOf(sortedModuleList);
-
-        final SetMultimap<URI, Module> nsMap = Multimaps.newSetMultimap(
-                new TreeMap<>(), MODULE_SET_SUPPLIER);
-        final SetMultimap<String, Module> nameMap = Multimaps.newSetMultimap(
-                new TreeMap<>(), MODULE_SET_SUPPLIER);
-        Set<ModuleIdentifier> modIdBuilder = new HashSet<>();
+        final SetMultimap<URI, Module> nsMap = Multimaps.newSetMultimap(new TreeMap<>(), MODULE_SET_SUPPLIER);
+        final SetMultimap<String, Module> nameMap = Multimaps.newSetMultimap(new TreeMap<>(), MODULE_SET_SUPPLIER);
+        final Set<ModuleIdentifier> modIdBuilder = new HashSet<>();
         for (Module m : modulesInit) {
             nameMap.put(m.getName(), m);
             nsMap.put(m.getNamespace(), m);