Skip to content

Commit dd64bac

Browse files
authored
Merge pull request #209 from SentryMan/ctx2
Fix BeanParam imports
2 parents b50db21 + e56e050 commit dd64bac

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

http-api/src/main/java/io/avaje/http/api/context/ServerContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public ServerContext(Object request, Object response) {
1919
* @return The request
2020
*/
2121
@SuppressWarnings("unchecked")
22-
<T> T request() {
22+
public <T> T request() {
2323
return (T) request;
2424
}
2525

@@ -29,7 +29,7 @@ <T> T request() {
2929
* @return The request
3030
*/
3131
@SuppressWarnings("unchecked")
32-
<T> T response() {
32+
public <T> T response() {
3333
return (T) response;
3434
}
3535
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class BeanParamReader {
1414
private final Map<String, FieldReader> fieldMap = new LinkedHashMap<>();
1515
private final List<ExecutableElement> constructors = new ArrayList<>();
1616
private final Map<String, ExecutableElement> methodMap = new LinkedHashMap<>();
17+
private final Set<String> imports = new HashSet<>();
1718

1819
public BeanParamReader(TypeElement beanType, String beanVarName, String beanShortType, ParamType defaultParamType) {
1920
this.beanType = beanType;
@@ -23,6 +24,10 @@ public BeanParamReader(TypeElement beanType, String beanVarName, String beanShor
2324
read();
2425
}
2526

27+
public Collection<String> imports() {
28+
return imports;
29+
}
30+
2631
private void read() {
2732
for (Element enclosedElement : beanType.getEnclosedElements()) {
2833
switch (enclosedElement.getKind()) {
@@ -45,6 +50,8 @@ private void readField(Element enclosedElement) {
4550
}
4651
FieldReader field = new FieldReader(enclosedElement, defaultParamType);
4752
fieldMap.put(field.varName(), field);
53+
54+
imports.addAll(UType.parse(field.element.element().asType()).importTypes());
4855
}
4956

5057
private void readMethod(ExecutableElement enclosedElement) {

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ public class ElementReader {
7474
paramType = ParamType.CONTEXT;
7575
useValidation = false;
7676
}
77+
if (ParamType.FORM == paramType || ParamType.BEANPARAM == paramType) {
78+
beanParamImports(rawType);
79+
}
80+
}
81+
82+
private void beanParamImports(String rawType) {
83+
typeElement(rawType).getEnclosedElements().stream()
84+
.filter(e -> e.getKind() == ElementKind.FIELD)
85+
.filter(f -> !IgnorePrism.isPresent(f))
86+
.map(Element::asType)
87+
.map(UType::parse)
88+
.flatMap(u -> u.importTypes().stream())
89+
.forEach(imports::add);
7790
}
7891

7992
TypeHandler initTypeHandler() {

0 commit comments

Comments
 (0)