Skip to content

Commit 647520a

Browse files
committed
context: move default method to defaultcontext
1 parent 0e01cf4 commit 647520a

File tree

79 files changed

+156
-126
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+156
-126
lines changed

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

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.time.Instant;
1919
import java.time.ZoneId;
2020
import java.time.format.DateTimeFormatter;
21-
import java.util.Arrays;
2221
import java.util.Collections;
2322
import java.util.Date;
2423
import java.util.List;
@@ -30,12 +29,11 @@
3029

3130
import edu.umd.cs.findbugs.annotations.NonNull;
3231
import edu.umd.cs.findbugs.annotations.Nullable;
32+
import io.jooby.buffer.BufferedOutput;
33+
import io.jooby.buffer.BufferedOutputFactory;
3334
import io.jooby.internal.LocaleUtils;
34-
import io.jooby.internal.ParamLookupImpl;
3535
import io.jooby.internal.ReadOnlyContext;
3636
import io.jooby.internal.WebSocketSender;
37-
import io.jooby.output.BufferedOutput;
38-
import io.jooby.output.BufferedOutputFactory;
3937
import io.jooby.value.Value;
4038
import io.jooby.value.ValueFactory;
4139

@@ -822,17 +820,7 @@ default Value lookup(String name) {
822820
* none found.
823821
* @throws IllegalArgumentException If no {@link ParamSource}s are specified.
824822
*/
825-
default Value lookup(@NonNull String name, ParamSource... sources) {
826-
if (sources.length == 0) {
827-
throw new IllegalArgumentException("No parameter sources were specified.");
828-
}
829-
830-
return Arrays.stream(sources)
831-
.map(source -> source.provider.apply(this, name))
832-
.filter(value -> !value.isMissing())
833-
.findFirst()
834-
.orElseGet(() -> Value.missing(name));
835-
}
823+
Value lookup(@NonNull String name, ParamSource... sources);
836824

837825
/**
838826
* Returns a {@link ParamLookup} instance which is a fluent interface covering the functionality
@@ -849,9 +837,7 @@ default Value lookup(@NonNull String name, ParamSource... sources) {
849837
* @see ParamLookup
850838
* @see #lookup(String, ParamSource...)
851839
*/
852-
default ParamLookup lookup() {
853-
return new ParamLookupImpl(this);
854-
}
840+
ParamLookup lookup();
855841

856842
/* **********************************************************************************************
857843
* Request Body

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

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,15 @@
2020
import java.nio.charset.StandardCharsets;
2121
import java.nio.file.Path;
2222
import java.time.Instant;
23-
import java.util.Date;
24-
import java.util.List;
25-
import java.util.Map;
26-
import java.util.Objects;
27-
import java.util.Optional;
23+
import java.util.*;
2824

2925
import org.slf4j.Logger;
3026

3127
import edu.umd.cs.findbugs.annotations.NonNull;
3228
import edu.umd.cs.findbugs.annotations.Nullable;
29+
import io.jooby.buffer.BufferedOutputFactory;
3330
import io.jooby.exception.RegistryException;
34-
import io.jooby.internal.HashValue;
35-
import io.jooby.internal.MissingValue;
36-
import io.jooby.internal.SingleValue;
37-
import io.jooby.internal.UrlParser;
38-
import io.jooby.output.BufferedOutputFactory;
31+
import io.jooby.internal.*;
3932
import io.jooby.value.Value;
4033
import io.jooby.value.ValueFactory;
4134

@@ -189,6 +182,49 @@ default Value cookie(@NonNull String name) {
189182
return value == null ? Value.missing(name) : Value.value(getValueFactory(), name, value);
190183
}
191184

185+
/**
186+
* Returns a {@link ParamLookup} instance which is a fluent interface covering the functionality
187+
* of the {@link #lookup(String, ParamSource...)} method.
188+
*
189+
* <pre>{@code
190+
* Value foo = ctx.lookup()
191+
* .inQuery()
192+
* .inPath()
193+
* .get("foo");
194+
* }</pre>
195+
*
196+
* @return A {@link ParamLookup} instance.
197+
* @see ParamLookup
198+
* @see #lookup(String, ParamSource...)
199+
*/
200+
default ParamLookup lookup() {
201+
return new ParamLookupImpl(this);
202+
}
203+
204+
/**
205+
* Searches for a parameter in the specified sources, in the specified order, returning the first
206+
* non-missing {@link Value}, or a 'missing' {@link Value} if none found.
207+
*
208+
* <p>At least one {@link ParamSource} must be specified.
209+
*
210+
* @param name The name of the parameter.
211+
* @param sources Sources to search in.
212+
* @return The first non-missing {@link Value} or a {@link Value} representing a missing value if
213+
* none found.
214+
* @throws IllegalArgumentException If no {@link ParamSource}s are specified.
215+
*/
216+
default Value lookup(@NonNull String name, ParamSource... sources) {
217+
if (sources.length == 0) {
218+
throw new IllegalArgumentException("No parameter sources were specified.");
219+
}
220+
221+
return Arrays.stream(sources)
222+
.map(source -> source.provider.apply(this, name))
223+
.filter(value -> !value.isMissing())
224+
.findFirst()
225+
.orElseGet(() -> Value.missing(name));
226+
}
227+
192228
@Override
193229
default Value path(@NonNull String name) {
194230
String value = pathMap().get(name);

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323

2424
import edu.umd.cs.findbugs.annotations.NonNull;
2525
import edu.umd.cs.findbugs.annotations.Nullable;
26+
import io.jooby.buffer.BufferedOutput;
27+
import io.jooby.buffer.BufferedOutputFactory;
2628
import io.jooby.exception.RegistryException;
27-
import io.jooby.output.BufferedOutput;
28-
import io.jooby.output.BufferedOutputFactory;
2929
import io.jooby.value.Value;
3030
import io.jooby.value.ValueFactory;
3131

@@ -747,6 +747,16 @@ public Context setRequestPath(@NonNull String path) {
747747
return this;
748748
}
749749

750+
@Override
751+
public ParamLookup lookup() {
752+
return ctx.lookup();
753+
}
754+
755+
@Override
756+
public Value lookup(@NonNull String name, ParamSource... sources) {
757+
return ctx.lookup(name, sources);
758+
}
759+
750760
@Override
751761
public Value path(@NonNull String name) {
752762
return ctx.path(name);

jooby/src/main/java/io/jooby/Jooby.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@
4242
import com.typesafe.config.Config;
4343
import edu.umd.cs.findbugs.annotations.NonNull;
4444
import edu.umd.cs.findbugs.annotations.Nullable;
45+
import io.jooby.buffer.BufferedOutputFactory;
4546
import io.jooby.exception.RegistryException;
4647
import io.jooby.exception.StartupException;
4748
import io.jooby.internal.LocaleUtils;
4849
import io.jooby.internal.MutedServer;
4950
import io.jooby.internal.RegistryRef;
5051
import io.jooby.internal.RouterImpl;
51-
import io.jooby.output.BufferedOutputFactory;
5252
import io.jooby.problem.ProblemDetailsHandler;
5353
import io.jooby.value.ValueFactory;
5454

jooby/src/main/java/io/jooby/MessageEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import edu.umd.cs.findbugs.annotations.NonNull;
99
import edu.umd.cs.findbugs.annotations.Nullable;
10+
import io.jooby.buffer.BufferedOutput;
1011
import io.jooby.exception.NotAcceptableException;
11-
import io.jooby.output.BufferedOutput;
1212

1313
/**
1414
* Render a route output as a byte array.

jooby/src/main/java/io/jooby/Router.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
import com.typesafe.config.Config;
3434
import edu.umd.cs.findbugs.annotations.NonNull;
3535
import edu.umd.cs.findbugs.annotations.Nullable;
36+
import io.jooby.buffer.BufferedOutputFactory;
3637
import io.jooby.exception.MissingValueException;
3738
import io.jooby.handler.AssetHandler;
3839
import io.jooby.handler.AssetSource;
39-
import io.jooby.output.BufferedOutputFactory;
4040
import io.jooby.value.ValueFactory;
4141

4242
/**

jooby/src/main/java/io/jooby/Sender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import edu.umd.cs.findbugs.annotations.NonNull;
1212
import edu.umd.cs.findbugs.annotations.Nullable;
13-
import io.jooby.output.BufferedOutput;
13+
import io.jooby.buffer.BufferedOutput;
1414

1515
/**
1616
* Non-blocking sender. Reactive responses use this class to send partial data in a non-blocking

jooby/src/main/java/io/jooby/ServerOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import com.typesafe.config.Config;
2626
import edu.umd.cs.findbugs.annotations.NonNull;
2727
import edu.umd.cs.findbugs.annotations.Nullable;
28+
import io.jooby.buffer.BufferOptions;
2829
import io.jooby.internal.SslContextProvider;
29-
import io.jooby.output.BufferOptions;
3030

3131
/**
3232
* Available server options. To load server options from configuration files, just do:

jooby/src/main/java/io/jooby/ServerSentMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import edu.umd.cs.findbugs.annotations.NonNull;
1616
import edu.umd.cs.findbugs.annotations.Nullable;
17-
import io.jooby.output.*;
17+
import io.jooby.buffer.*;
1818

1919
/**
2020
* Server-Sent message.

jooby/src/main/java/io/jooby/TemplateEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import java.util.List;
1010

1111
import edu.umd.cs.findbugs.annotations.NonNull;
12-
import io.jooby.output.BufferedOutput;
12+
import io.jooby.buffer.BufferedOutput;
1313

1414
/**
1515
* Template engine renderer. This class renderer instances of {@link ModelAndView} objects. Template

0 commit comments

Comments
 (0)