Skip to content

Commit 48d58f3

Browse files
authored
Make Generated @DependencyMeta annotations more readable (#365)
* make dependency annotations more readable * Update DependencyMeta.java * Update ScopeInfo.java * Update ScopeInfo.java * only newline type if no other attributes * Update MetaData.java
1 parent 799f9ea commit 48d58f3

File tree

4 files changed

+50
-17
lines changed

4 files changed

+50
-17
lines changed

inject-generator/src/main/java/io/avaje/inject/generator/MetaData.java

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
package io.avaje.inject.generator;
2+
23
import static io.avaje.inject.generator.ProcessingContext.*;
34

45
import java.util.ArrayList;
@@ -35,6 +36,7 @@ final class MetaData {
3536
* Type deemed to be candidate for providing to another external module.
3637
*/
3738
private String autoProvides;
39+
3840
private boolean generateProxy;
3941
private boolean usesExternalDependency;
4042
private String externalDependency;
@@ -175,23 +177,47 @@ void buildMethod(Append append) {
175177
if (usesExternalDependency) {
176178
append.append(" // uses external dependency ").append(externalDependency).append(NEWLINE);
177179
}
178-
append.append(" @DependencyMeta(type=\"").append(type).append("\"");
179-
if (name != null) {
180-
append.append(", name=\"").append(name).append("\"");
180+
181+
final var hasName = name != null;
182+
final var hasMethod = hasMethod();
183+
final var hasProvidesAspect = !providesAspect.isEmpty();
184+
final var hasDependsOn = !dependsOn.isEmpty();
185+
final var hasProvides = !provides.isEmpty();
186+
final var hasAutoProvides = autoProvides != null && !autoProvides.isEmpty();
187+
188+
append.append(" @DependencyMeta(");
189+
190+
if (hasName
191+
|| hasMethod
192+
|| hasProvidesAspect
193+
|| hasDependsOn
194+
|| hasProvides
195+
|| hasAutoProvides) {
196+
append.eol().append(" ");
181197
}
182-
if (hasMethod()) {
183-
append.append(", method=\"").append(method).append("\"");
198+
199+
append.append("type = \"").append(type).append("\"");
200+
if (hasName) {
201+
append.append(",").eol().append(" name = \"").append(name).append("\"");
202+
}
203+
if (hasMethod) {
204+
append.append(",").eol().append(" method = \"").append(method).append("\"");
184205
}
185-
if (!providesAspect.isEmpty()) {
186-
append.append(", providesAspect=\"").append(providesAspect).append("\"");
187-
} else if (!provides.isEmpty()) {
206+
if (hasProvidesAspect) {
207+
append
208+
.append(",")
209+
.eol()
210+
.append(" providesAspect = \"")
211+
.append(providesAspect)
212+
.append("\"");
213+
} else if (hasProvides) {
188214
appendProvides(append, "provides", provides);
189215
}
190-
if (!dependsOn.isEmpty()) {
216+
if (hasDependsOn) {
191217
appendProvides(append, "dependsOn", dependsOn.stream().map(Dependency::dependsOn).collect(Collectors.toList()));
192218
}
193-
if (autoProvides != null && !autoProvides.isEmpty()) {
194-
append.append(", autoProvides=\"").append(autoProvides).append("\"");
219+
if (hasAutoProvides) {
220+
append.append(",").eol().append(" autoProvides = \"").append(autoProvides).append("\"");
195221
}
196222
append.append(")").append(NEWLINE);
197223
append.append(" private void build_").append(buildName()).append("() {").append(NEWLINE);
@@ -210,15 +236,22 @@ private boolean hasMethod() {
210236
}
211237

212238
private void appendProvides(Append sb, String attribute, List<String> types) {
213-
sb.append(", ").append(attribute).append("={");
239+
sb.append(",").eol().append(" ").append(attribute).append(" = {");
240+
final var size = types.size();
241+
if (size > 1) {
242+
sb.eol().append(" ");
243+
}
214244
for (int i = 0; i < types.size(); i++) {
215245
if (i > 0) {
216-
sb.append(",");
246+
sb.append(",").eol().append(" ");
217247
}
218248
sb.append("\"");
219249
sb.append(types.get(i));
220250
sb.append("\"");
221251
}
252+
if (size > 1) {
253+
sb.eol().append(" ");
254+
}
222255
sb.append("}");
223256
}
224257

inject-generator/src/main/java/io/avaje/inject/generator/ScopeInfo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ void buildProvides(Append writer) {
398398

399399
private void buildProvidesMethod(Append writer, String fieldName, Set<String> types) {
400400
writer.append(" @Override").eol();
401-
writer.append(" public Class<?>[] %s() { return %s; }", fieldName, fieldName).eol();
401+
writer.append(" public Class<?>[] %s() {\n return %s;\n }", fieldName, fieldName).eol();
402402
writer.append(" private final Class<?>[] %s = new Class<?>[]{", fieldName).eol();
403403
for (final String rawType : types) {
404404
writer.append(" %s.class,", trimGenerics(rawType)).eol();
@@ -440,7 +440,7 @@ void buildAutoRequiresAspects(Append writer, Set<String> autoRequires) {
440440
}
441441

442442
void readModuleMetaData(TypeElement moduleType) {
443-
InjectModulePrism module = InjectModulePrism.getInstanceOn(moduleType);
443+
final InjectModulePrism module = InjectModulePrism.getInstanceOn(moduleType);
444444
details(module.name(), moduleType);
445445
readFactoryMetaData(moduleType);
446446
}

inject-generator/src/main/java/io/avaje/inject/generator/SimpleModuleWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ final class SimpleModuleWriter {
2020
"/**\n" +
2121
" * Generated source - avaje inject module for %s.\n" +
2222
" * \n" +
23-
" * With Java module system this generated class should be explicitly\n" +
23+
" * With the Java module system, this generated class should be explicitly\n" +
2424
" * registered in module-info via a <code>provides</code> clause like:\n" +
2525
" * \n" +
2626
" * <pre>{@code\n" +

inject/src/main/java/io/avaje/inject/spi/DependencyMeta.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
String[] provides() default {};
3939

4040
/**
41-
* The list of dependencies.
41+
* The list of dependencies this bean requires.
4242
*/
4343
String[] dependsOn() default {};
4444

0 commit comments

Comments
 (0)