Skip to content

Commit c6ceda2

Browse files
authored
[generator] Use Avaje Prisms UType for Processing TypeMirrors (#484)
1 parent dbcc971 commit c6ceda2

23 files changed

+270
-736
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private void validateFallback() {
6262
if (fallback == null) {
6363
return;
6464
}
65-
var returnType = Util.trimAnnotations(fallback.getReturnType().toString());
65+
var returnType = ProcessorUtils.trimAnnotations(fallback.getReturnType().toString());
6666
if (!returnType.contains(Util.shortName(rawReturn))) {
6767
APContext.logError(fallback, "An AOP fallback method must have the same return type as the target method");
6868
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ final class AssistBeanReader {
2828
AssistBeanReader(TypeElement beanType) {
2929
this.beanType = beanType;
3030
this.type = beanType.getQualifiedName().toString();
31-
this.typeReader = new TypeReader(GenericType.parse(type), beanType, importTypes, false);
31+
this.typeReader = new TypeReader(UType.parse(beanType.asType()), beanType, importTypes, false);
3232

3333
typeReader.process();
3434
qualifierName = typeReader.name();
@@ -144,7 +144,7 @@ private String beanPackageName() {
144144
if (beanType.getNestingKind().isNested()) {
145145
return Util.nestedPackageOf(beanQualifiedName());
146146
} else {
147-
return Util.packageOf(beanQualifiedName());
147+
return ProcessorUtils.packageOf(beanQualifiedName());
148148
}
149149
}
150150

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

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ final class BeanReader {
4040
private boolean writtenToFile;
4141
private boolean suppressBuilderImport;
4242
private boolean suppressGeneratedImport;
43-
private Set<GenericType> allGenericTypes;
43+
private Set<UType> allUTypes;
4444
private final boolean delayed;
4545

4646
BeanReader(TypeElement beanType, boolean factory, boolean importedComponent) {
@@ -50,7 +50,7 @@ final class BeanReader {
5050
this.prototype = PrototypePrism.isPresent(beanType);
5151
this.primary = PrimaryPrism.isPresent(beanType);
5252
this.secondary = !primary && SecondaryPrism.isPresent(beanType);
53-
this.typeReader = new TypeReader(GenericType.parse(type), beanType, importTypes, factory);
53+
this.typeReader = new TypeReader(UType.parse(beanType.asType()), beanType, importTypes, factory);
5454

5555
typeReader.process();
5656

@@ -176,24 +176,24 @@ String providesAspect() {
176176
return typeReader.providesAspect();
177177
}
178178

179-
Set<GenericType> allGenericTypes() {
180-
if (allGenericTypes != null) {
181-
return allGenericTypes;
179+
Set<UType> allGenericTypes() {
180+
if (allUTypes != null) {
181+
return allUTypes;
182182
}
183-
allGenericTypes = new LinkedHashSet<>(typeReader.genericTypes());
183+
allUTypes = new LinkedHashSet<>(typeReader.genericTypes());
184184
for (FieldReader field : injectFields) {
185-
field.addDependsOnGeneric(allGenericTypes);
185+
field.addDependsOnGeneric(allUTypes);
186186
}
187187
for (MethodReader method : injectMethods) {
188-
method.addDependsOnGeneric(allGenericTypes);
188+
method.addDependsOnGeneric(allUTypes);
189189
}
190190
if (constructor != null) {
191-
constructor.addDependsOnGeneric(allGenericTypes);
191+
constructor.addDependsOnGeneric(allUTypes);
192192
}
193193
for (MethodReader factoryMethod : factoryMethods()) {
194-
factoryMethod.addDependsOnGeneric(allGenericTypes);
194+
factoryMethod.addDependsOnGeneric(allUTypes);
195195
}
196-
return allGenericTypes;
196+
return allUTypes;
197197
}
198198

199199
/**
@@ -311,11 +311,11 @@ private Set<String> importTypes() {
311311
aspects.extraImports(importTypes);
312312

313313
for (MethodReader factoryMethod : factoryMethods) {
314-
Set<GenericType> genericTypes = factoryMethod.genericTypes();
315-
if (!genericTypes.isEmpty()) {
314+
Set<UType> utypes = factoryMethod.genericTypes();
315+
if (!utypes.isEmpty()) {
316316
importTypes.add(Constants.TYPE);
317317
importTypes.add(Constants.GENERICTYPE);
318-
genericTypes.forEach(t->t.addImports(importTypes));
318+
utypes.forEach(t -> importTypes.addAll(t.importTypes()));
319319
}
320320
}
321321
checkImports();
@@ -465,7 +465,7 @@ private String beanPackageName() {
465465
if (beanType.getNestingKind().isNested()) {
466466
return Util.nestedPackageOf(beanQualifiedName());
467467
} else {
468-
return Util.packageOf(beanQualifiedName());
468+
return ProcessorUtils.packageOf(beanQualifiedName());
469469
}
470470
}
471471

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,25 @@ final class Dependency {
77
private final boolean conditionalDependency;
88

99
Dependency(String name) {
10+
String nameStr;
1011
if (name.startsWith("soft:")) {
1112
this.softDependency = true;
1213
this.conditionalDependency = false;
13-
this.name = Util.trimAnnotations(name.substring(5));
14+
nameStr = ProcessorUtils.trimAnnotations(name.substring(5));
1415
} else if (name.startsWith("con:")) {
1516
this.softDependency = true;
1617
this.conditionalDependency = true;
17-
this.name = Util.trimAnnotations(name.substring(4));
18+
nameStr = ProcessorUtils.trimAnnotations(name.substring(4));
1819
} else {
1920
this.softDependency = false;
2021
this.conditionalDependency = false;
21-
this.name = Util.trimAnnotations(name);
22+
nameStr = ProcessorUtils.trimAnnotations(name);
2223
}
24+
this.name = nameStr.replace(",", ", ");
2325
}
2426

2527
Dependency(String name, boolean softDependency) {
26-
this.name = Util.trimAnnotations(name);
28+
this.name = ProcessorUtils.trimAnnotations(name).replace(",", ", ");
2729
this.softDependency = softDependency;
2830
this.conditionalDependency = false;
2931
}

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ final class FieldReader {
1111
private final UtilType utype;
1212
private final boolean nullable;
1313
private final String fieldType;
14-
private final GenericType type;
14+
private final UType type;
1515
private boolean requestParam;
1616
private String requestParamName;
1717
private final boolean isBeanMap;
@@ -24,18 +24,18 @@ final class FieldReader {
2424
this.utype = Util.determineType(element.asType());
2525
this.isBeanMap = QualifiedMapPrism.isPresent(element);
2626
this.fieldType = Util.unwrapProvider(utype.rawType(isBeanMap));
27-
this.type = GenericType.parse(utype.rawType(isBeanMap));
27+
this.type = utype.toUType();
2828
this.assisted = AssistedPrism.isPresent(element);
2929
if (nullable || element.asType().toString().startsWith("java.util.Optional<")) {
3030
ProcessingContext.addOptionalType(fieldType);
3131
}
3232
}
3333

3434
boolean isGenericParam() {
35-
return type.isGenericType() && !type.isProviderType();
35+
return type.isGeneric() && !Util.isProvider(type.mainType());
3636
}
3737

38-
void addDependsOnGeneric(Set<GenericType> set) {
38+
void addDependsOnGeneric(Set<UType> set) {
3939
if (isGenericParam()) {
4040
set.add(type);
4141
}
@@ -46,16 +46,16 @@ String fieldName() {
4646
}
4747

4848
void addImports(ImportTypeMap importTypes) {
49-
type.addImports(importTypes);
49+
importTypes.addAll(type.importTypes());
5050
}
5151

5252
String builderGetDependency(String builder) {
5353
final var sb = new StringBuilder();
5454
sb.append(builder).append(".").append(utype.getMethod(nullable, isBeanMap));
5555
if (isGenericParam()) {
56-
sb.append("TYPE_").append(type.shortName().replace(".", "_"));
56+
sb.append("TYPE_").append(Util.shortName(type).replace(".", "_"));
5757
} else {
58-
var trimmed = Util.trimAnnotations(fieldType);
58+
var trimmed = ProcessorUtils.trimAnnotations(fieldType);
5959
sb.append(Util.shortName(trimmed)).append(".class");
6060
}
6161
if (name != null) {
@@ -65,8 +65,8 @@ String builderGetDependency(String builder) {
6565
return sb.toString();
6666
}
6767

68-
void removeFromProvides(List<String> provides) {
69-
provides.remove(type.toString());
68+
void removeFromProvides(List<UType> provides) {
69+
provides.remove(type);
7070
}
7171

7272
/**
@@ -87,7 +87,7 @@ void writeRequestDependency(Append writer) {
8787
// just add as field dependency
8888
requestParamName = writer.nextName(fieldName().toLowerCase());
8989
writer.append(" @Inject").eol().append(" ");
90-
type.writeShort(writer);
90+
writer.append(type.shortType());
9191
writer.append(" %s;", requestParamName).eol().eol();
9292
}
9393
}

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

Lines changed: 0 additions & 193 deletions
This file was deleted.

0 commit comments

Comments
 (0)