Skip to content

Commit 8387b09

Browse files
committed
multi default
1 parent efd8a2b commit 8387b09

File tree

10 files changed

+25
-25
lines changed

10 files changed

+25
-25
lines changed

http-api/src/main/java/io/avaje/http/api/Default.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
@Retention(value = RUNTIME)
2626
public @interface Default {
2727

28-
/**
29-
* The default value.
30-
*/
31-
String value();
32-
28+
/** The default values. */
29+
String[] value();
3330
}

http-api/src/main/java/io/avaje/http/api/PathTypeConversion.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public static String withDefault(String value, String defaultValue) {
2828
return value != null ? value : defaultValue;
2929
}
3030

31-
public static List<String> withDefault(List<String> value, String defaultValue) {
32-
return value != null && !value.isEmpty() ? value : List.of(defaultValue);
31+
public static List<String> withDefault(List<String> value, List<String> defaultValue) {
32+
return value != null && !value.isEmpty() ? value : defaultValue;
3333
}
3434

3535
/**

http-api/src/test/java/io/avaje/http/api/PathTypeConversionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void withDefault() {
2222
assertEquals("", PathTypeConversion.withDefault("", "myVal"));
2323
String nully = null;
2424
assertEquals("myVal", PathTypeConversion.withDefault(nully, "myVal"));
25-
assertThat(PathTypeConversion.withDefault(List.of(), "myVal")).anyMatch(s -> "myVal".equals(s));
25+
assertThat(PathTypeConversion.withDefault(List.of(), List.of("myVal"))).anyMatch(s -> "myVal".equals(s));
2626
}
2727

2828
@Test

http-generator-client/src/main/java/io/avaje/http/generator/client/ClientPlatformAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,6 @@ public void writeReadCollectionParameter(
6565
Append writer,
6666
ParamType paramType,
6767
String paramName,
68-
String paramDefault) {
68+
List<String> paramDefault) {
6969
}
7070
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static io.avaje.http.generator.core.ParamType.RESPONSE_HANDLER;
44

5+
import java.util.List;
56
import java.util.Objects;
67
import java.util.Optional;
78

@@ -31,7 +32,7 @@ public class ElementReader {
3132
private ParamType paramType;
3233
private String matrixParamName;
3334
private boolean impliedParamType;
34-
private String paramDefault;
35+
private List<String> paramDefault;
3536

3637
private boolean notNullKotlin;
3738
private boolean isParamCollection;
@@ -326,7 +327,7 @@ private boolean setValue(Append writer, PathSegments segments, String shortType)
326327
ctx.platform().writeReadCollectionParameter(writer, paramType, paramName);
327328
}
328329
} else if (hasParamDefault()) {
329-
ctx.platform().writeReadParameter(writer, paramType, paramName, paramDefault);
330+
ctx.platform().writeReadParameter(writer, paramType, paramName, paramDefault.get(0));
330331
} else {
331332
final var checkNull =
332333
notNullKotlin || (paramType == ParamType.FORMPARAM && typeHandler.isPrimitive());

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ public interface PlatformAdapter {
4949

5050
void writeReadCollectionParameter(Append writer, ParamType paramType, String paramName);
5151

52-
void writeReadCollectionParameter(Append writer, ParamType paramType, String paramName, String paramDefault);
52+
void writeReadCollectionParameter(Append writer, ParamType paramType, String paramName, List<String> paramDefault);
5353

5454
}

http-generator-helidon/src/main/java/io/avaje/http/generator/helidon/HelidonPlatformAdapter.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,20 +133,20 @@ public void writeReadCollectionParameter(Append writer, ParamType paramType, Str
133133

134134
@Override
135135
public void writeReadCollectionParameter(
136-
Append writer, ParamType paramType, String paramName, String paramDefault) {
136+
Append writer, ParamType paramType, String paramName, List<String> paramDefault) {
137137
switch (paramType) {
138138
case QUERYPARAM:
139139
writer.append(
140-
"withDefault(req.queryParams().all(\"%s\"), \"%s\")", paramName, paramDefault);
140+
"withDefault(req.queryParams().all(\"%s\"), java.util.List.of(\"%s\"))", paramName, String.join(",", paramDefault));
141141
break;
142142
case HEADER:
143143
writer.append(
144-
"withDefault(req.headers().all(\"%s\"), \"%s\")", paramName, paramDefault);
144+
"withDefault(req.headers().all(\"%s\"), java.util.List.of(\"%s\"))", paramName, String.join(",", paramDefault));
145145
break;
146146
case COOKIE:
147147
writer.append(
148-
"withDefault(req.headers().cookies().all(\"%s\"), \"%s\")",
149-
paramName, paramDefault);
148+
"withDefault(req.headers().cookies().all(\"%s\"), java.util.List.of\"%s\"))", paramName, String.join(",", paramDefault)
149+
);
150150
break;
151151
default:
152152
throw new UnsupportedOperationException("Unsupported MultiValue Parameter");

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ public void writeReadCollectionParameter(Append writer, ParamType paramType, Str
8080

8181
@Override
8282
public void writeReadCollectionParameter(
83-
Append writer, ParamType paramType, String paramName, String paramDefault) {
83+
Append writer, ParamType paramType, String paramName, List<String> paramDefault) {
8484
if (paramType != ParamType.QUERYPARAM) {
8585
throw new UnsupportedOperationException(
8686
"Only MultiValue Query Params are supported in Javalin");
8787
}
88-
writer.append("withDefault(ctx.queryParams(\"%s\"), \"%s\")", paramName, paramDefault);
88+
writer.append("withDefault(ctx.queryParams(\"%s\"), java.util.List.of(\"%s\"))", paramName, String.join(",", paramDefault));
8989
}
9090
}

http-generator-jex/src/main/java/io/avaje/http/generator/jex/JexAdapter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ public void writeReadCollectionParameter(Append writer, ParamType paramType, Str
7474

7575
@Override
7676
public void writeReadCollectionParameter(
77-
Append writer, ParamType paramType, String paramName, String paramDefault) {
77+
Append writer, ParamType paramType, String paramName, List<String> paramDefault) {
7878
if (paramType != ParamType.QUERYPARAM) {
7979
throw new UnsupportedOperationException(
8080
"Only MultiValue Query Params are supported in Jex");
8181
}
82-
writer.append("withDefault(ctx.queryParams(\"%s\"), \"%s\")", paramName, paramDefault);
82+
writer.append("withDefault(ctx.queryParams(\"%s\"), java.util.List.of(\"%s\"))", paramName, String.join(",", paramDefault));
8383
}
8484
}

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,20 +127,22 @@ public void writeReadCollectionParameter(Append writer, ParamType paramType, Str
127127

128128
@Override
129129
public void writeReadCollectionParameter(
130-
Append writer, ParamType paramType, String paramName, String paramDefault) {
130+
Append writer, ParamType paramType, String paramName, List<String> paramDefault) {
131131
switch (paramType) {
132132
case QUERYPARAM:
133133
writer.append(
134-
"req.query().all(\"%s\", () -> java.util.List.of(\"%s\"))", paramName, paramDefault);
134+
"req.query().all(\"%s\", () -> java.util.List.of(\"%s\"))",
135+
paramName, String.join(",", paramDefault));
135136
break;
136137
case HEADER:
137138
writer.append(
138-
"req.headers().all(\"%s\", () -> java.util.List.of(\"%s\"))", paramName, paramDefault);
139+
"req.headers().all(\"%s\", () -> java.util.List.of(\"%s\"))",
140+
paramName, String.join(",", paramDefault));
139141
break;
140142
case COOKIE:
141143
writer.append(
142144
"req.headers().cookies().all(\"%s\", () -> java.util.List.of(\"%s\"))",
143-
paramName, paramDefault);
145+
paramName, String.join(",", paramDefault));
144146
break;
145147
default:
146148
throw new UnsupportedOperationException("Unsupported MultiValue Parameter");

0 commit comments

Comments
 (0)