Generating imports after all usages were generated
This commit is contained in:
@@ -68,17 +68,15 @@ public class DependencyInjectorGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder out = new StringBuilder();
|
|
||||||
Printer p = new Printer(out);
|
|
||||||
fields.addAll(dependencies.satisfyDependencies());
|
fields.addAll(dependencies.satisfyDependencies());
|
||||||
|
|
||||||
String copyright = "injector-generator/copyright.txt";
|
|
||||||
p.println(FileUtil.loadFile(new File(copyright)));
|
|
||||||
|
|
||||||
p.println("package " + injectorPackageName + ";");
|
StringBuilder preamble = new StringBuilder();
|
||||||
p.println();
|
generatePreamble(injectorPackageName, new Printer(preamble));
|
||||||
|
|
||||||
|
StringBuilder body = new StringBuilder();
|
||||||
|
Printer p = new Printer(body);
|
||||||
|
|
||||||
generateImports(p, injectorPackageName);
|
|
||||||
p.println();
|
p.println();
|
||||||
|
|
||||||
p.println("/* This file is generated by " + generatorClass.getName() + ". DO NOT EDIT! */");
|
p.println("/* This file is generated by " + generatorClass.getName() + ". DO NOT EDIT! */");
|
||||||
@@ -94,14 +92,20 @@ public class DependencyInjectorGenerator {
|
|||||||
generateDestroy(injectorClassName, p);
|
generateDestroy(injectorClassName, p);
|
||||||
p.println();
|
p.println();
|
||||||
generateGetters(p);
|
generateGetters(p);
|
||||||
if (!factoryMethods.isEmpty()) {
|
generateFactoryMethods(p);
|
||||||
p.println();
|
|
||||||
generateFactoryMethods(p);
|
|
||||||
}
|
|
||||||
p.popIndent();
|
p.popIndent();
|
||||||
p.println("}"); // class
|
p.println("}"); // class
|
||||||
|
|
||||||
FileUtil.writeToFile(tmpfile, out.toString());
|
importManager.addClass(org.jetbrains.annotations.NotNull.class);
|
||||||
|
importManager.addClass(javax.annotation.PreDestroy.class);
|
||||||
|
StringBuilder imports = new StringBuilder();
|
||||||
|
generateImports(new Printer(imports), injectorPackageName);
|
||||||
|
|
||||||
|
StringBuilder text = new StringBuilder(preamble);
|
||||||
|
text.append(imports);
|
||||||
|
text.append(body);
|
||||||
|
|
||||||
|
FileUtil.writeToFile(tmpfile, text.toString());
|
||||||
System.out.println("File written: " + tmpfile.getAbsolutePath());
|
System.out.println("File written: " + tmpfile.getAbsolutePath());
|
||||||
if (useTmpfile) {
|
if (useTmpfile) {
|
||||||
if (!tmpfile.renameTo(file)) {
|
if (!tmpfile.renameTo(file)) {
|
||||||
@@ -112,6 +116,14 @@ public class DependencyInjectorGenerator {
|
|||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void generatePreamble(String injectorPackageName, Printer p) throws IOException {
|
||||||
|
String copyright = "injector-generator/copyright.txt";
|
||||||
|
p.println(FileUtil.loadFile(new File(copyright)));
|
||||||
|
|
||||||
|
p.println("package " + injectorPackageName + ";");
|
||||||
|
p.println();
|
||||||
|
}
|
||||||
|
|
||||||
private void generateImplementsList(Printer out) {
|
private void generateImplementsList(Printer out) {
|
||||||
if (!implementsList.isEmpty()) {
|
if (!implementsList.isEmpty()) {
|
||||||
out.print(" implements ");
|
out.print(" implements ");
|
||||||
@@ -311,6 +323,9 @@ public class DependencyInjectorGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void generateFactoryMethods(Printer p) {
|
private void generateFactoryMethods(Printer p) {
|
||||||
|
if (factoryMethods.isEmpty()) return;
|
||||||
|
p.println();
|
||||||
|
|
||||||
p.pushIndent();
|
p.pushIndent();
|
||||||
for (FactoryMethod method : factoryMethods) {
|
for (FactoryMethod method : factoryMethods) {
|
||||||
generateFactoryMethod(p, method);
|
generateFactoryMethod(p, method);
|
||||||
|
|||||||
Reference in New Issue
Block a user