Skip to content

Commit a822582

Browse files
committed
context: Context.lookup + ParamSource fix #3048
- rename `MULTIPART` to `FORM`
1 parent b256cff commit a822582

File tree

5 files changed

+40
-36
lines changed

5 files changed

+40
-36
lines changed

jooby/src/main/java/io/jooby/Context.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -768,6 +768,19 @@ default boolean isPreflight() {
768768
* **********************************************************************************************
769769
*/
770770

771+
/**
772+
* Searches for a parameter in the following order: {@link ParamSource#PATH}, {@link
773+
* ParamSource#QUERY}, {@link ParamSource#FORM} returning the first non-missing {@link Value}, or
774+
* a 'missing' {@link Value} if none found.
775+
*
776+
* @param name The name of the parameter.
777+
* @return The first non-missing {@link Value} or a {@link Value} representing a missing value if
778+
* none found.
779+
*/
780+
default Value lookup(String name) {
781+
return lookup(name, ParamSource.PATH, ParamSource.QUERY, ParamSource.FORM);
782+
}
783+
771784
/**
772785
* Searches for a parameter in the specified sources, in the specified order, returning the first
773786
* non-missing {@link Value}, or a 'missing' {@link Value} if none found.
@@ -780,7 +793,7 @@ default boolean isPreflight() {
780793
* none found.
781794
* @throws IllegalArgumentException If no {@link ParamSource}s are specified.
782795
*/
783-
default Value lookup(String name, ParamSource... sources) {
796+
default Value lookup(@NonNull String name, ParamSource... sources) {
784797
if (sources.length == 0) {
785798
throw new IllegalArgumentException("No parameter sources were specified.");
786799
}

jooby/src/main/java/io/jooby/ParamLookup.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,12 @@ default Stage inQuery() {
8585
}
8686

8787
/**
88-
* Adds the multipart parameters to the search locations.
88+
* Adds the form parameters to the search locations.
8989
*
9090
* @return This instance.
9191
*/
92-
default Stage inMultipart() {
93-
return in(ParamSource.MULTIPART);
92+
default Stage inForm() {
93+
return in(ParamSource.FORM);
9494
}
9595

9696
/**

jooby/src/main/java/io/jooby/ParamSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public enum ParamSource {
3434
QUERY(Context::query),
3535

3636
/** Source equivalent to {@link Context#form(String)}. */
37-
MULTIPART(Context::form);
37+
FORM(Context::form);
3838

3939
final BiFunction<Context, String, Value> provider;
4040

modules/jooby-apt/src/test/java/source/ParamSourceCheckerContext.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import java.util.function.Consumer;
99

10+
import edu.umd.cs.findbugs.annotations.NonNull;
1011
import io.jooby.ParamSource;
1112
import io.jooby.Value;
1213
import io.jooby.test.MockContext;
@@ -20,7 +21,7 @@ public ParamSourceCheckerContext(Consumer<ParamSource[]> onLookup) {
2021
}
2122

2223
@Override
23-
public Value lookup(String name, ParamSource... sources) {
24+
public Value lookup(@NonNull String name, ParamSource... sources) {
2425
onLookup.accept(sources);
2526
return super.lookup(name, sources);
2627
}

modules/jooby-test/src/test/java/io/jooby/test/LookupTest.java

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import static io.jooby.ParamSource.COOKIE;
99
import static io.jooby.ParamSource.FLASH;
10+
import static io.jooby.ParamSource.FORM;
1011
import static io.jooby.ParamSource.HEADER;
11-
import static io.jooby.ParamSource.MULTIPART;
1212
import static io.jooby.ParamSource.PATH;
1313
import static io.jooby.ParamSource.QUERY;
1414
import static io.jooby.ParamSource.SESSION;
@@ -56,7 +56,7 @@ public void makeContext() {
5656
context.setQueryString("?foo=query-bar");
5757

5858
Formdata formdata = Value.formdata(context);
59-
formdata.put("foo", "multipart-bar");
59+
formdata.put("foo", "form-bar");
6060
context.setForm(formdata);
6161
}
6262

@@ -68,32 +68,22 @@ public void testNoSources() {
6868

6969
@Test
7070
public void testPriority() {
71-
test(PATH, HEADER, COOKIE, FLASH, SESSION, QUERY, MULTIPART);
72-
test(HEADER, COOKIE, FLASH, SESSION, QUERY, MULTIPART, PATH);
73-
test(COOKIE, FLASH, SESSION, QUERY, MULTIPART, PATH, HEADER);
74-
test(FLASH, SESSION, QUERY, MULTIPART, PATH, HEADER, COOKIE);
75-
test(SESSION, QUERY, MULTIPART, PATH, HEADER, COOKIE, FLASH);
76-
test(QUERY, MULTIPART, PATH, HEADER, COOKIE, FLASH, SESSION);
77-
test(MULTIPART, PATH, HEADER, COOKIE, FLASH, SESSION, QUERY);
78-
test(MULTIPART, PATH, HEADER, COOKIE, FLASH, SESSION, QUERY);
79-
80-
test(PATH, l -> l.inPath().inHeader().inCookie().inFlash().inSession().inQuery().inMultipart());
81-
test(
82-
HEADER,
83-
l -> l.inHeader().inCookie().inFlash().inSession().inQuery().inMultipart().inPath());
84-
test(
85-
COOKIE,
86-
l -> l.inCookie().inFlash().inSession().inQuery().inMultipart().inPath().inHeader());
87-
test(
88-
FLASH, l -> l.inFlash().inSession().inQuery().inMultipart().inPath().inHeader().inCookie());
89-
test(
90-
SESSION,
91-
l -> l.inSession().inQuery().inMultipart().inPath().inHeader().inCookie().inFlash());
92-
test(
93-
QUERY, l -> l.inQuery().inMultipart().inPath().inHeader().inCookie().inFlash().inSession());
94-
test(
95-
MULTIPART,
96-
l -> l.inMultipart().inPath().inHeader().inCookie().inFlash().inSession().inQuery());
71+
test(PATH, HEADER, COOKIE, FLASH, SESSION, QUERY, FORM);
72+
test(HEADER, COOKIE, FLASH, SESSION, QUERY, FORM, PATH);
73+
test(COOKIE, FLASH, SESSION, QUERY, FORM, PATH, HEADER);
74+
test(FLASH, SESSION, QUERY, FORM, PATH, HEADER, COOKIE);
75+
test(SESSION, QUERY, FORM, PATH, HEADER, COOKIE, FLASH);
76+
test(QUERY, FORM, PATH, HEADER, COOKIE, FLASH, SESSION);
77+
test(FORM, PATH, HEADER, COOKIE, FLASH, SESSION, QUERY);
78+
test(FORM, PATH, HEADER, COOKIE, FLASH, SESSION, QUERY);
79+
80+
test(PATH, l -> l.inPath().inHeader().inCookie().inFlash().inSession().inQuery().inForm());
81+
test(HEADER, l -> l.inHeader().inCookie().inFlash().inSession().inQuery().inForm().inPath());
82+
test(COOKIE, l -> l.inCookie().inFlash().inSession().inQuery().inForm().inPath().inHeader());
83+
test(FLASH, l -> l.inFlash().inSession().inQuery().inForm().inPath().inHeader().inCookie());
84+
test(SESSION, l -> l.inSession().inQuery().inForm().inPath().inHeader().inCookie().inFlash());
85+
test(QUERY, l -> l.inQuery().inForm().inPath().inHeader().inCookie().inFlash().inSession());
86+
test(FORM, l -> l.inForm().inPath().inHeader().inCookie().inFlash().inSession().inQuery());
9787
}
9888

9989
@Test
@@ -102,7 +92,7 @@ public void testMissingValue() {
10292
MissingValueException.class,
10393
() ->
10494
new MockContext()
105-
.lookup("foo", PATH, HEADER, COOKIE, FLASH, SESSION, QUERY, MULTIPART)
95+
.lookup("foo", PATH, HEADER, COOKIE, FLASH, SESSION, QUERY, FORM)
10696
.value());
10797

10898
assertThrows(
@@ -116,7 +106,7 @@ public void testMissingValue() {
116106
.inFlash()
117107
.inSession()
118108
.inQuery()
119-
.inMultipart()
109+
.inForm()
120110
.get("foo")
121111
.value());
122112
}

0 commit comments

Comments
 (0)