Skip to content

Commit 22631cd

Browse files
committed
mvc: add a new name method on @XXXParam annotation
- fix #3762 - mvc: default value on @QueryParam/@CookieParam/@HeaderParam annotation ref #3761
1 parent e9b889d commit 22631cd

File tree

29 files changed

+190
-71
lines changed

29 files changed

+190
-71
lines changed

jooby/src/main/java/io/jooby/Body.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import io.jooby.internal.ByteArrayBody;
2121
import io.jooby.internal.FileBody;
2222
import io.jooby.internal.InputStreamBody;
23-
import io.jooby.internal.MissingValue;
2423
import io.jooby.value.Value;
2524

2625
/**
@@ -58,11 +57,6 @@ default Value get(int index) {
5857
return get(Integer.toString(index));
5958
}
6059

61-
@Override
62-
default Value get(@NonNull String name) {
63-
return new MissingValue(name);
64-
}
65-
6660
@Override
6761
default Iterator<Value> iterator() {
6862
return List.of((Value) this).iterator();
@@ -73,7 +67,7 @@ default Iterator<Value> iterator() {
7367
*
7468
* @return Body as byte array.
7569
*/
76-
@NonNull byte[] bytes();
70+
byte[] bytes();
7771

7872
/**
7973
* True if body is on memory. False, indicates body is on file system. Body larger than {@link

jooby/src/main/java/io/jooby/DefaultContext.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ default Value session(@NonNull String name) {
136136
if (session != null) {
137137
return session.get(name);
138138
}
139-
return Value.missing(name);
139+
return Value.missing(getValueFactory(), name);
140140
}
141141

142142
@Override
@@ -178,7 +178,9 @@ default Object forward(@NonNull String path) {
178178
@Override
179179
default Value cookie(@NonNull String name) {
180180
String value = cookieMap().get(name);
181-
return value == null ? Value.missing(name) : Value.value(getValueFactory(), name, value);
181+
return value == null
182+
? Value.missing(getValueFactory(), name)
183+
: Value.value(getValueFactory(), name, value);
182184
}
183185

184186
/**
@@ -221,14 +223,14 @@ default Value lookup(@NonNull String name, ParamSource... sources) {
221223
.map(source -> source.provider.apply(this, name))
222224
.filter(value -> !value.isMissing())
223225
.findFirst()
224-
.orElseGet(() -> Value.missing(name));
226+
.orElseGet(() -> Value.missing(getValueFactory(), name));
225227
}
226228

227229
@Override
228230
default Value path(@NonNull String name) {
229231
String value = pathMap().get(name);
230232
return value == null
231-
? new MissingValue(name)
233+
? new MissingValue(getValueFactory(), name)
232234
: new SingleValue(getValueFactory(), name, UrlParser.decodePathSegment(value));
233235
}
234236

jooby/src/main/java/io/jooby/ForwardingContext.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ public Value get(@NonNull String name) {
119119
return delegate.get(name);
120120
}
121121

122+
@Override
123+
public Value getOrDefault(@NonNull String name, @NonNull String defaultValue) {
124+
return delegate.getOrDefault(name, defaultValue);
125+
}
126+
122127
@Override
123128
public int size() {
124129
return delegate.size();
@@ -320,7 +325,7 @@ public ForwardingValue(Value delegate) {
320325
}
321326

322327
@Override
323-
public Value get(@NonNull int index) {
328+
public Value get(int index) {
324329
return delegate.get(index);
325330
}
326331

@@ -329,6 +334,11 @@ public Value get(@NonNull String name) {
329334
return delegate.get(name);
330335
}
331336

337+
@Override
338+
public Value getOrDefault(@NonNull String name, @NonNull String defaultValue) {
339+
return delegate.getOrDefault(name, defaultValue);
340+
}
341+
332342
@Override
333343
public int size() {
334344
return delegate.size();

jooby/src/main/java/io/jooby/annotation/ContextParam.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@
2828
public @interface ContextParam {
2929

3030
/**
31-
* Attribute's name. See {@link io.jooby.Context#getAttribute(String)}
31+
* Attribute's name. See {@link io.jooby.Context#getAttribute(String)}. Defaults to method
32+
* parameter name.
3233
*
33-
* @return Attribute's name.
34+
* @return Attribute's name. Defaults to method parameter name.
3435
*/
35-
String value() default "";
36+
String name() default "";
3637
}

jooby/src/main/java/io/jooby/annotation/CookieParam.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
@Target(ElementType.PARAMETER)
2424
public @interface CookieParam {
2525
/**
26-
* Parameter name.
26+
* Parameter name. Defaults to method parameter name.
2727
*
28-
* @return Parameter name.
28+
* @return Parameter name. Defaults to method parameter name.
2929
*/
30-
String value() default "";
30+
String name() default "";
3131
}

jooby/src/main/java/io/jooby/annotation/FlashParam.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
@Target(ElementType.PARAMETER)
2424
public @interface FlashParam {
2525
/**
26-
* Parameter name.
26+
* Parameter name. Defaults to method parameter name.
2727
*
28-
* @return Parameter name.
28+
* @return Parameter name. Defaults to method parameter name.
2929
*/
30-
String value() default "";
30+
String name() default "";
3131
}

jooby/src/main/java/io/jooby/annotation/FormParam.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
public @interface FormParam {
3232

3333
/**
34-
* Parameter name.
34+
* Parameter name. Defaults to method parameter name.
3535
*
36-
* @return Parameter name.
36+
* @return Parameter name. Defaults to method parameter name.
3737
*/
38-
String value() default "";
38+
String name() default "";
3939
}

jooby/src/main/java/io/jooby/annotation/HeaderParam.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
public @interface HeaderParam {
2929

3030
/**
31-
* Parameter name.
31+
* Parameter name. Defaults to method parameter name.
3232
*
33-
* @return Parameter name.
33+
* @return Parameter name. Defaults to method parameter name.
3434
*/
35-
String value() default "";
35+
String name() default "";
3636
}

jooby/src/main/java/io/jooby/annotation/Param.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
public @interface Param {
2929

3030
/**
31-
* Parameter name.
31+
* Parameter name. Defaults to method parameter name.
3232
*
33-
* @return Parameter name.
33+
* @return Parameter name. Defaults to method parameter name.
3434
*/
3535
String name() default "";
3636

jooby/src/main/java/io/jooby/annotation/PathParam.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
@Target(ElementType.PARAMETER)
2525
public @interface PathParam {
2626
/**
27-
* Path pattern. Default <code>/</code>.
27+
* Parameter name. Defaults to method parameter name.
2828
*
29-
* @return Path pattern. Default <code>/</code>.
29+
* @return Parameter name. Defaults to method parameter name.
3030
*/
31-
String value() default "";
31+
String name() default "";
3232
}

0 commit comments

Comments
 (0)