Skip to content

Commit 52b9eaf

Browse files
committed
fix beanparam import
1 parent b50db21 commit 52b9eaf

File tree

3 files changed

+21
-21
lines changed

3 files changed

+21
-21
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: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class ElementReader {
3838
private boolean isParamCollection;
3939
private boolean isParamMap;
4040
private final Set<String> imports = new HashSet<>();
41+
private BeanParamReader formBeanReader;
4142

4243
ElementReader(Element element, ParamType defaultType, boolean formMarker) {
4344
this(element, null, Util.typeDef(element.asType()), defaultType, formMarker);
@@ -74,6 +75,10 @@ public class ElementReader {
7475
paramType = ParamType.CONTEXT;
7576
useValidation = false;
7677
}
78+
if (ParamType.FORM == paramType || ParamType.BEANPARAM == paramType) {
79+
this.formBeanReader = getFormBeanReader(rawType, rawType, defaultType);
80+
this.imports.addAll(formBeanReader.imports());
81+
}
7782
}
7883

7984
TypeHandler initTypeHandler() {
@@ -289,21 +294,9 @@ void setValue(Append writer) {
289294
}
290295

291296
private boolean setValue(Append writer, PathSegments segments, String shortType) {
292-
// if (formMarker && impliedParamType && typeHandler == null) {
293-
// if (ParamType.FORM != paramType) {
294-
// throw new IllegalStateException("Don't get here?");
295-
// }
296-
//// // @Form on method and this type is a "bean" so treat is as a form bean
297-
//// writeForm(writer, shortType, varName, ParamType.FORMPARAM);
298-
//// paramType = ParamType.FORM;
299-
//// return false;
300-
// }
301-
if (ParamType.FORM == paramType) {
302-
writeForm(writer, shortType, varName, ParamType.FORMPARAM);
303-
return false;
304-
}
305-
if (ParamType.BEANPARAM == paramType) {
306-
writeForm(writer, shortType, varName, ParamType.QUERYPARAM);
297+
298+
if ((ParamType.FORM == paramType) || (ParamType.BEANPARAM == paramType)) {
299+
formBeanReader.write(writer);
307300
return false;
308301
}
309302
if (impliedParamType) {
@@ -366,10 +359,10 @@ private boolean setValue(Append writer, PathSegments segments, String shortType)
366359
return true;
367360
}
368361

369-
private void writeForm(Append writer, String shortType, String varName, ParamType defaultParamType) {
370-
TypeElement formBeanType = typeElement(rawType);
371-
BeanParamReader form = new BeanParamReader(formBeanType, varName, shortType, defaultParamType);
372-
form.write(writer);
362+
private BeanParamReader getFormBeanReader(
363+
String shortType, String varName, ParamType defaultParamType) {
364+
final TypeElement formBeanType = typeElement(rawType);
365+
return new BeanParamReader(formBeanType, varName, shortType, defaultParamType);
373366
}
374367

375368
public ParamType paramType() {

0 commit comments

Comments
 (0)