Skip to content

Commit 3fb3c25

Browse files
committed
tidy component reader
properly read all the meta annotations
1 parent 94e47bc commit 3fb3c25

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

jsonb-generator/src/main/java/io/avaje/jsonb/generator/ComponentReader.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,47 +26,44 @@ void read() {
2626

2727
if (isGeneratedComponent(moduleType)) {
2828
var adapters =
29-
MetaDataPrism.getInstanceOn(moduleType).value().stream()
30-
.map(APContext::asTypeElement)
31-
.collect(toList());
29+
MetaDataPrism.getInstanceOn(moduleType).value().stream()
30+
.map(APContext::asTypeElement)
31+
.collect(toList());
3232

3333
if (adapters.get(0).getModifiers().contains(Modifier.PUBLIC)) {
3434
componentMetaData.setFullName(fqn);
35-
adapters.forEach(t -> readMetaData(moduleType));
3635

36+
readMetaData(moduleType, componentMetaData);
3737
} else {
38-
// non-public adapters grouped by packageName, does not support generic types (JsonFactory)
39-
var packageName = APContext.elements().getPackageOf(moduleType).getQualifiedName().toString();
38+
// non-public adapters grouped by packageName, does not support generic types
39+
// (JsonFactory)
40+
var packageName =
41+
APContext.elements().getPackageOf(moduleType).getQualifiedName().toString();
4042
var meta = privateMetaData.computeIfAbsent(packageName, k -> new ComponentMetaData());
41-
adapters.stream()
42-
.map(TypeElement::getQualifiedName)
43-
.map(Object::toString)
44-
.forEach(meta::add);
43+
44+
readMetaData(moduleType, meta);
4545
}
4646
}
4747
}
4848
}
4949

5050
private static boolean isGeneratedComponent(TypeElement moduleType) {
51-
return moduleType != null && "io.avaje.jsonb.spi.GeneratedComponent".equals(moduleType.getSuperclass().toString());
51+
return moduleType != null
52+
&& "io.avaje.jsonb.spi.GeneratedComponent".equals(moduleType.getSuperclass().toString());
5253
}
5354

5455
/** Read the existing JsonAdapters from the MetaData annotation of the generated component. */
55-
private void readMetaData(TypeElement moduleType) {
56+
private void readMetaData(TypeElement moduleType, ComponentMetaData meta) {
5657
for (final AnnotationMirror annotationMirror : moduleType.getAnnotationMirrors()) {
5758

5859
final MetaDataPrism metaData = MetaDataPrism.getInstance(annotationMirror);
5960
final JsonFactoryPrism metaDataFactory = JsonFactoryPrism.getInstance(annotationMirror);
6061

6162
if (metaData != null) {
62-
metaData.value().stream()
63-
.map(TypeMirror::toString)
64-
.forEach(componentMetaData::add);
63+
metaData.value().stream().map(TypeMirror::toString).forEach(meta::add);
6564

6665
} else if (metaDataFactory != null) {
67-
metaDataFactory.value().stream()
68-
.map(TypeMirror::toString)
69-
.forEach(componentMetaData::addFactory);
66+
metaDataFactory.value().stream().map(TypeMirror::toString).forEach(meta::addFactory);
7067
}
7168
}
7269
}

0 commit comments

Comments
 (0)