Skip to content

Commit 2d68039

Browse files
authored
Merge pull request #372 from SentryMan/refine-pkg-private
tidy component reader
2 parents e67ca91 + fb699a1 commit 2d68039

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

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

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.avaje.jsonb.generator;
22

33
import static io.avaje.jsonb.generator.APContext.typeElement;
4-
import static java.util.stream.Collectors.toList;
54

65
import java.util.Map;
76

@@ -25,34 +24,35 @@ void read() {
2524
final TypeElement moduleType = typeElement(fqn);
2625

2726
if (isGeneratedComponent(moduleType)) {
28-
var adapters =
29-
MetaDataPrism.getInstanceOn(moduleType).value().stream()
30-
.map(APContext::asTypeElement)
31-
.collect(toList());
32-
33-
if (adapters.get(0).getModifiers().contains(Modifier.PUBLIC)) {
27+
if (hasPublicComponents(moduleType)) {
3428
componentMetaData.setFullName(fqn);
35-
adapters.forEach(t -> readMetaData(moduleType));
36-
29+
readMetaData(moduleType, componentMetaData);
3730
} else {
38-
// non-public adapters grouped by packageName, does not support generic types (JsonFactory)
31+
// non-public adapters grouped by packageName
3932
var packageName = APContext.elements().getPackageOf(moduleType).getQualifiedName().toString();
4033
var meta = privateMetaData.computeIfAbsent(packageName, k -> new ComponentMetaData());
41-
adapters.stream()
42-
.map(TypeElement::getQualifiedName)
43-
.map(Object::toString)
44-
.forEach(meta::add);
34+
readMetaData(moduleType, meta);
4535
}
4636
}
4737
}
4838
}
4939

40+
private static boolean hasPublicComponents(TypeElement moduleType) {
41+
var firstAdapter =
42+
MetaDataPrism.getInstanceOn(moduleType).value().stream()
43+
.map(APContext::asTypeElement)
44+
.findFirst()
45+
.orElseThrow();
46+
47+
return firstAdapter.getModifiers().contains(Modifier.PUBLIC);
48+
}
49+
5050
private static boolean isGeneratedComponent(TypeElement moduleType) {
5151
return moduleType != null && "io.avaje.jsonb.spi.GeneratedComponent".equals(moduleType.getSuperclass().toString());
5252
}
5353

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

5858
final MetaDataPrism metaData = MetaDataPrism.getInstance(annotationMirror);
@@ -61,12 +61,12 @@ private void readMetaData(TypeElement moduleType) {
6161
if (metaData != null) {
6262
metaData.value().stream()
6363
.map(TypeMirror::toString)
64-
.forEach(componentMetaData::add);
64+
.forEach(meta::add);
6565

6666
} else if (metaDataFactory != null) {
6767
metaDataFactory.value().stream()
6868
.map(TypeMirror::toString)
69-
.forEach(componentMetaData::addFactory);
69+
.forEach(meta::addFactory);
7070
}
7171
}
7272
}

0 commit comments

Comments
 (0)