Inline generateSources() 89/104789/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 7 Mar 2023 18:07:36 +0000 (19:07 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 7 Mar 2023 18:14:20 +0000 (19:14 +0100)
This method has direct interactions with output collection. We are set
to change that integration and this inlining has the added benefit of
removing one intermediate collection.

JIRA: YANGTOOLS-745
Change-Id: Ice993375011fd31a3ec80771b0a3d056b921cb68
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
plugin/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java

index 31adc97177714874ebc82c8a80494d95d98939a8..4fbb29c62545f5adeeec5f2d7f5c6ec8b42ac202 100644 (file)
@@ -237,7 +237,28 @@ class YangToSourcesProcessor {
                 }
 
                 LOG.info("{} {} YANG models processed in {}", LOG_PREFIX, holder.getContext().getModules().size(), sw);
-                outputFiles.addAll(generateSources(holder, codeGenerators, parserConfig));
+
+                for (GeneratorTaskFactory factory : codeGenerators) {
+                    if (!parserConfig.equals(factory.parserConfig())) {
+                        continue;
+                    }
+
+                    final Stopwatch genSw = Stopwatch.createStarted();
+                    final GeneratorTask task = factory.createTask(project, holder);
+                    LOG.debug("{} Task {} initialized in {}", LOG_PREFIX, task, genSw);
+
+                    final List<FileState> files;
+                    try {
+                        files = task.execute(buildContext);
+                    } catch (FileGeneratorException | IOException e) {
+                        throw new MojoFailureException(LOG_PREFIX + " Generator " + factory + " failed", e);
+                    }
+
+                    outputFiles.addAll(files);
+
+                    LOG.info("{} Sources generated by {}: {} in {}", LOG_PREFIX, factory.generatorName(), files.size(),
+                        genSw);
+                }
 
                 if (!sourcesPersisted) {
                     // add META_INF/yang once
@@ -372,41 +393,6 @@ class YangToSourcesProcessor {
             .collect(ImmutableList.toImmutableList());
     }
 
-    /**
-     * Call generate on every generator from plugin configuration.
-     */
-    private List<FileState> generateSources(final ContextHolder context,
-            final Collection<GeneratorTaskFactory> generators, final YangParserConfiguration parserConfig)
-                throws MojoFailureException {
-        final var generatorToFiles = ImmutableList.<FileState>builder();
-        for (GeneratorTaskFactory factory : generators) {
-            if (!parserConfig.equals(factory.parserConfig())) {
-                continue;
-            }
-
-            final Stopwatch sw = Stopwatch.createStarted();
-            final GeneratorTask task = factory.createTask(project, context);
-            LOG.debug("{} Task {} initialized in {}", LOG_PREFIX, task, sw);
-
-            final List<FileState> files;
-            try {
-                files = task.execute(buildContext);
-            } catch (FileGeneratorException | IOException e) {
-                throw new MojoFailureException(LOG_PREFIX + " Generator " + factory + " failed", e);
-            }
-
-            final String generatorName = factory.generatorName();
-            LOG.debug("{} Sources generated by {}: {}", LOG_PREFIX, generatorName, files);
-
-            final int fileCount = files.size();
-            generatorToFiles.addAll(files);
-
-            LOG.info("{} Sources generated by {}: {} in {}", LOG_PREFIX, generatorName, fileCount, sw);
-        }
-
-        return generatorToFiles.build();
-    }
-
     @VisibleForTesting
     static @NonNull Path stateFilePath(final String projectBuildDirectory) {
         // ${project.build.directory}/maven-status/yang-maven-plugin/execution.state