Move auto-imports to an ImportCustomizer defined in DefaultWebViewComponentTemplateCompileUnit.

This commit is contained in:
Jesse Brault 2025-01-26 14:46:54 -06:00
parent 1a528465f9
commit bd4dee98fa
2 changed files with 18 additions and 20 deletions

View File

@ -34,19 +34,9 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler {
return SimpleTranspilerConfiguration.withDefaults();
}
protected void addAutomaticImports(WebViewComponentModuleNode moduleNode, TranspilerConfiguration configuration) {
configuration.getImports().forEach(moduleNode::addImport);
configuration.getStaticImports().forEach(staticImport -> moduleNode.addStaticImport(
staticImport.getV1(), staticImport.getV2(), staticImport.getV3()
));
configuration.getStarImports().forEach(moduleNode::addStarImport);
configuration.getStaticStarImports().forEach(moduleNode::addStaticStarImport);
}
protected WebViewComponentModuleNode initModuleNode(
ComponentTemplateCompileUnit compileUnit,
WebViewComponentSourceUnit sourceUnit,
TranspilerConfiguration configuration
WebViewComponentSourceUnit sourceUnit
) {
final var moduleNode = new WebViewComponentModuleNode(sourceUnit);
sourceUnit.setModuleNode(moduleNode);
@ -56,7 +46,6 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler {
moduleNode.setPackageName(defaultPackageName);
}
this.addAutomaticImports(moduleNode, configuration);
return moduleNode;
}
@ -218,12 +207,6 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler {
CompilationUnitNode compilationUnitNode,
String templateClassSimpleName
) throws ComponentTemplateCompileException {
// resolver, transpilerConfiguration, and positionSetter
final ClassLoaderComponentClassNodeResolver resolver = new ClassLoaderComponentClassNodeResolver(
compileUnit,
compilerConfiguration.getGroovyClassLoader()
);
final var transpilerConfiguration = this.getConfiguration(resolver);
// transpilerConfiguration, and positionSetter
final var transpilerConfiguration = this.getConfiguration();
final PositionSetter positionSetter = transpilerConfiguration.getPositionSetter();
@ -241,7 +224,7 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler {
// prepare moduleNode
final WebViewComponentModuleNode moduleNode = this.initModuleNode(
compileUnit, sourceUnit, transpilerConfiguration
compileUnit, sourceUnit
);
// prepare mainClassNode

View File

@ -10,7 +10,9 @@ import groowt.view.component.compiler.source.FileSource;
import groowt.view.component.compiler.source.URISource;
import groowt.view.component.compiler.source.URLSource;
import org.codehaus.groovy.control.CompilationUnit;
import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.control.Janitor;
import org.codehaus.groovy.control.customizers.ImportCustomizer;
import org.codehaus.groovy.control.io.ReaderSource;
import org.jetbrains.annotations.Nullable;
@ -20,8 +22,20 @@ import java.net.URI;
public class DefaultWebViewComponentTemplateCompileUnit extends AbstractComponentTemplateCompileUnit
implements ReaderSource, WebViewComponentTemplateCompileUnit {
private static CompilationUnit getCompilationUnit() {
final var configuration = new CompilerConfiguration();
final var addGroowtImports = new ImportCustomizer();
addGroowtImports.addStarImports(
"groowt.view.component.web.lib",
"groowt.view.component.web.runtime",
"groowt.view.component.runtime"
);
configuration.addCompilationCustomizers(addGroowtImports);
return new CompilationUnit(configuration);
}
private final String defaultPackageName;
private final CompilationUnit groovyCompilationUnit = new CompilationUnit();
private final CompilationUnit groovyCompilationUnit;
public DefaultWebViewComponentTemplateCompileUnit(
String descriptiveName,
@ -35,6 +49,7 @@ public class DefaultWebViewComponentTemplateCompileUnit extends AbstractComponen
} else {
this.defaultPackageName = defaultPackageName;
}
this.groovyCompilationUnit = getCompilationUnit();
}
@Override