Skip to content

Commit 47fb3ef

Browse files
committed
add jsonb types to imports
1 parent 82286bd commit 47fb3ef

File tree

4 files changed

+21
-10
lines changed

4 files changed

+21
-10
lines changed

http-generator-core/src/main/java/io/avaje/http/generator/core/JsonBUtil.java

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

3-
import java.util.Collection;
43
import java.util.LinkedHashMap;
54
import java.util.Map;
65
import java.util.function.Consumer;
@@ -56,14 +55,10 @@ public static void writeJsonbType(UType type, Append writer) {
5655
break;
5756
default:
5857
{
59-
try {
60-
if (Collection.class.isAssignableFrom(Class.forName(type.mainType())))
61-
throw new UnsupportedOperationException(
62-
"Only java.util Map, Set and List are supported JsonB Controller Collection Types");
63-
} catch (final ClassNotFoundException e) {
58+
if (type.mainType().contains("java.util"))
6459
throw new UnsupportedOperationException(
6560
"Only java.util Map, Set and List are supported JsonB Controller Collection Types");
66-
}
61+
6762
final var params =
6863
type.allTypes().stream().skip(1).collect(Collectors.joining(".class, ")) + ".class";
6964

http-generator-core/src/main/java/io/avaje/http/generator/core/UType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ default String param0() {
4444
* Return all types associated with this Utype.
4545
*/
4646
default List<String> allTypes() {
47-
return null;
47+
return List.of();
4848
}
4949

5050
/**

http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/ControllerWriter.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.avaje.http.generator.javalin;
22

33
import java.io.IOException;
4+
import java.util.List;
45
import java.util.Map;
56

67
import io.avaje.http.generator.core.BaseControllerWriter;
@@ -30,6 +31,11 @@ class ControllerWriter extends BaseControllerWriter {
3031
reader.addImportType("io.avaje.jsonb.JsonType");
3132
reader.addImportType("io.avaje.jsonb.Types");
3233
this.jsonTypes = JsonBUtil.jsonTypes(reader);
34+
jsonTypes.values().stream()
35+
.map(UType::allTypes)
36+
.flatMap(List::stream)
37+
.filter(s -> !s.contains("java.lang"))
38+
.forEach(reader::addImportType);
3339
} else {
3440
this.jsonTypes = Map.of();
3541
}
@@ -85,7 +91,9 @@ private void writeClassStart() {
8591
}
8692

8793
for (final UType type : jsonTypes.values()) {
88-
writer.append(" private final JsonType<%s> %sJsonType;", PrimitiveUtil.wrap(type.full()), type.shortName()).eol();
94+
final var typeString = PrimitiveUtil.wrap(type.shortType()).replace(",", ", ");
95+
96+
writer.append(" private final JsonType<%s> %sJsonType;", typeString, type.shortName()).eol();
8997
}
9098
writer.eol();
9199

http-generator-nima/src/main/java/io/avaje/http/generator/helidon/nima/ControllerWriter.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@ class ControllerWriter extends BaseControllerWriter {
2121
if (useJsonB) {
2222
reader.addImportType("io.avaje.jsonb.Jsonb");
2323
reader.addImportType("io.avaje.jsonb.JsonType");
24+
reader.addImportType("io.avaje.jsonb.Types");
2425
this.jsonTypes = JsonBUtil.jsonTypes(reader);
26+
jsonTypes.values().stream()
27+
.map(UType::allTypes)
28+
.flatMap(List::stream)
29+
.filter(s -> !s.contains("java.lang"))
30+
.forEach(reader::addImportType);
2531
} else {
2632
this.jsonTypes = Map.of();
2733
}
@@ -87,7 +93,9 @@ private void writeClassStart() {
8793
writer.append(" private final Validator validator;").eol();
8894
}
8995
for (final UType type : jsonTypes.values()) {
90-
writer.append(" private final JsonType<%s> %sJsonType;", PrimitiveUtil.wrap(type.full()), type.shortName()).eol();
96+
final var typeString = PrimitiveUtil.wrap(type.shortType()).replace(",", ", ");
97+
98+
writer.append(" private final JsonType<%s> %sJsonType;", typeString, type.shortName()).eol();
9199
}
92100
writer.eol();
93101

0 commit comments

Comments
 (0)