Skip to content

Commit 9051a1a

Browse files
committed
Nima ControllerMethodWriter - no functional change, extract helper methods
1 parent 4f7d80d commit 9051a1a

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

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

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.avaje.http.api.MediaType;
44
import io.avaje.http.generator.core.*;
55

6+
import java.util.List;
67
import java.util.Optional;
78

89
/**
@@ -25,11 +26,8 @@ class ControllerMethodWriter {
2526
}
2627

2728
void writeRule() {
28-
final var fullPath = method.getFullPath();
29-
writer
30-
.append(
31-
" rules.%s(\"%s\", this::_%s);",
32-
webMethod.name().toLowerCase(), fullPath, method.simpleName())
29+
writer.append(" rules.%s(\"%s\", this::_%s);",
30+
webMethod.name().toLowerCase(), method.getFullPath(), method.simpleName())
3331
.eol();
3432
}
3533

@@ -60,7 +58,7 @@ void writeHandler(boolean requestScoped) {
6058
writer.append(");").eol();
6159
});
6260
}
63-
} else if (method.getParams().stream().anyMatch(p -> p.isForm() || ParamType.FORMPARAM.equals(p.getParamType()))) {
61+
} else if (usesFormParams()) {
6462
writer.append(" var formParams = req.content().as(Parameters.class);").eol();
6563
}
6664

@@ -80,7 +78,7 @@ void writeHandler(boolean requestScoped) {
8078
writer.append(" ");
8179
if (!method.isVoid()) {
8280
writer.append("var result = ");
83-
} else if (method.isVoid() && params.stream().noneMatch(p -> "ServerResponse".equals(p.getShortType()))) {
81+
} else if (missingServerResponse(params)) {
8482
throw new IllegalStateException("Void controller methods must have a ServerResponse parameter");
8583
}
8684

@@ -104,23 +102,29 @@ void writeHandler(boolean requestScoped) {
104102
writer.append(");").eol();
105103
if (!method.isVoid()) {
106104
writeContextReturn();
107-
if (useJsonB
108-
&& !"byte[]".equals(method.getReturnType().toString())
109-
&& (method.getProduces() == null
110-
|| method.getProduces().toLowerCase().contains("json"))) {
111-
112-
writer
113-
.append(
114-
" %sReturnedJsonType.toJson(result, res.outputStream());", method.simpleName())
115-
.eol();
116-
105+
if (producesJson()) {
106+
writer.append(" %sReturnedJsonType.toJson(result, res.outputStream());", method.simpleName()).eol();
117107
} else {
118108
writer.append(" res.send(result);").eol();
119109
}
120110
}
121111
writer.append(" }").eol().eol();
122112
}
123113

114+
private boolean producesJson() {
115+
return useJsonB
116+
&& !"byte[]".equals(method.getReturnType().toString())
117+
&& (method.getProduces() == null || method.getProduces().toLowerCase().contains("json"));
118+
}
119+
120+
private boolean missingServerResponse(List<MethodParam> params) {
121+
return method.isVoid() && params.stream().noneMatch(p -> "ServerResponse".equals(p.getShortType()));
122+
}
123+
124+
private boolean usesFormParams() {
125+
return method.getParams().stream().anyMatch(p -> p.isForm() || ParamType.FORMPARAM.equals(p.getParamType()));
126+
}
127+
124128
private void writeContextReturn() {
125129
final var producesOp = Optional.ofNullable(method.getProduces());
126130
if (producesOp.isEmpty() && !useJsonB) {

0 commit comments

Comments
 (0)