Skip to content

Commit 011d81f

Browse files
committed
Update Util.java
1 parent 6056f37 commit 011d81f

File tree

1 file changed

+21
-9
lines changed
  • jsonb-generator/src/main/java/io/avaje/jsonb/generator

1 file changed

+21
-9
lines changed

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

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import javax.lang.model.element.TypeElement;
44

55
import static io.avaje.jsonb.generator.ProcessingContext.element;
6+
import static io.avaje.jsonb.generator.ProcessingContext.logError;
67

78
import java.util.ArrayList;
89
import java.util.List;
@@ -139,18 +140,29 @@ static String initLower(String name) {
139140

140141
/** Return the base type given the JsonAdapter type. */
141142
static String baseTypeOfAdapter(String adapterFullName) {
142-
TypeElement element = element(adapterFullName);
143+
final var element = element(adapterFullName);
143144
if (element == null) {
144145
throw new NullPointerException("Element not found for [" + adapterFullName + "]");
145146
}
146-
return element(adapterFullName).getInterfaces().stream()
147-
.filter(t -> t.toString().contains("io.avaje.jsonb.JsonAdapter"))
148-
.findFirst()
149-
.map(Object::toString)
150-
.map(GenericType::parse)
151-
.map(GenericType::firstParamType)
152-
.map(Util::extractTypeWithNest)
153-
.orElseThrow(() -> new IllegalStateException("Adapter: " + adapterFullName + " does not directly implement JsonAdapter"));
147+
return baseTypeOfAdapter(element);
148+
}
149+
150+
static String baseTypeOfAdapter(TypeElement element) {
151+
152+
return element.getInterfaces().stream()
153+
.filter(t -> t.toString().contains("io.avaje.jsonb.JsonAdapter"))
154+
.findFirst()
155+
.map(Object::toString)
156+
.map(GenericType::parse)
157+
.map(GenericType::firstParamType)
158+
.map(Util::extractTypeWithNest)
159+
.orElseGet(
160+
() -> {
161+
logError(
162+
element,
163+
"Custom Adapters must implement JsonAdapter");
164+
return "Invalid";
165+
});
154166
}
155167

156168
static String extractTypeWithNest(String fullType) {

0 commit comments

Comments
 (0)