Skip to content

Commit 9d76c32

Browse files
committed
Value API: favor Value for simple attributes
1 parent e47a070 commit 9d76c32

11 files changed

Lines changed: 29 additions & 29 deletions

File tree

TODO

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
* review ValueNode return type on Context, some must be Value not ValueNode.
2-
* Make Session.toMap() read-only
31
* review toString on Value API (removal of QueryStringValue?)
42
* tests and coverage
53
* server options from application.conf MUST override hardcoded settings
@@ -9,3 +7,4 @@
97
* doc Session
108
* doc WebSocket
119
* doc FileUpload change
10+
* doc ContextParam/SessionParam

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public interface Context extends Registry {
118118
* @param name Attribute's name.
119119
* @return Flash attribute.
120120
*/
121-
@Nonnull ValueNode flash(@Nonnull String name);
121+
@Nonnull Value flash(@Nonnull String name);
122122

123123
/**
124124
* Find a session or creates a new session.
@@ -149,7 +149,7 @@ public interface Context extends Registry {
149149
* @param name Cookie's name.
150150
* @return Cookie value.
151151
*/
152-
@Nonnull ValueNode cookie(@Nonnull String name);
152+
@Nonnull Value cookie(@Nonnull String name);
153153

154154
/**
155155
* Request cookies.
@@ -202,7 +202,7 @@ public interface Context extends Registry {
202202
* @param name Path key.
203203
* @return Associated value or a missing value, but never a <code>null</code> reference.
204204
*/
205-
@Nonnull ValueNode path(@Nonnull String name);
205+
@Nonnull Value path(@Nonnull String name);
206206

207207
/**
208208
* Convert the {@link #pathMap()} to the given type.
@@ -336,7 +336,7 @@ public interface Context extends Registry {
336336
* @param name Header name. Case insensitive.
337337
* @return A header value or missing value, never a <code>null</code> reference.
338338
*/
339-
@Nonnull ValueNode header(@Nonnull String name);
339+
@Nonnull Value header(@Nonnull String name);
340340

341341
/**
342342
* Header as single-value map.

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public interface DefaultContext extends Context {
8282
* @param name Attribute's name.
8383
* @return Flash attribute.
8484
*/
85-
@Override default @Nonnull ValueNode flash(@Nonnull String name) {
85+
@Override default @Nonnull Value flash(@Nonnull String name) {
8686
return Value.create(this, name, flash().get(name));
8787
}
8888

@@ -114,12 +114,12 @@ public interface DefaultContext extends Context {
114114
return session;
115115
}
116116

117-
@Override default @Nonnull ValueNode cookie(@Nonnull String name) {
117+
@Override default @Nonnull Value cookie(@Nonnull String name) {
118118
String value = cookieMap().get(name);
119119
return value == null ? Value.missing(name) : Value.value(this, name, value);
120120
}
121121

122-
@Override @Nonnull default ValueNode path(@Nonnull String name) {
122+
@Override @Nonnull default Value path(@Nonnull String name) {
123123
String value = pathMap().get(name);
124124
return value == null
125125
? new MissingValue(name)
@@ -158,7 +158,7 @@ public interface DefaultContext extends Context {
158158
return query().toMultimap();
159159
}
160160

161-
@Override @Nonnull default ValueNode header(@Nonnull String name) {
161+
@Override @Nonnull default Value header(@Nonnull String name) {
162162
return header().get(name);
163163
}
164164

@@ -171,7 +171,7 @@ public interface DefaultContext extends Context {
171171
}
172172

173173
@Override default boolean accept(@Nonnull MediaType contentType) {
174-
ValueNode accept = header(ACCEPT);
174+
Value accept = header(ACCEPT);
175175
return accept.isMissing() ? true : contentType.matches(accept.value());
176176
}
177177

@@ -196,17 +196,17 @@ public interface DefaultContext extends Context {
196196
}
197197

198198
@Override @Nullable default MediaType getRequestType() {
199-
ValueNode contentType = header("Content-Type");
199+
Value contentType = header("Content-Type");
200200
return contentType.isMissing() ? null : MediaType.valueOf(contentType.value());
201201
}
202202

203203
@Override @Nonnull default MediaType getRequestType(MediaType defaults) {
204-
ValueNode contentType = header("Content-Type");
204+
Value contentType = header("Content-Type");
205205
return contentType.isMissing() ? defaults : MediaType.valueOf(contentType.value());
206206
}
207207

208208
@Override default long getRequestLength() {
209-
ValueNode contentLength = header("Content-Length");
209+
Value contentLength = header("Content-Length");
210210
return contentLength.isMissing() ? -1 : contentLength.longValue();
211211
}
212212

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public ForwardingContext(@Nonnull Context context) {
6161
return ctx.flash();
6262
}
6363

64-
@Nonnull @Override public ValueNode flash(@Nonnull String name) {
64+
@Nonnull @Override public Value flash(@Nonnull String name) {
6565
return ctx.flash(name);
6666
}
6767

@@ -77,7 +77,7 @@ public ForwardingContext(@Nonnull Context context) {
7777
return ctx.sessionOrNull();
7878
}
7979

80-
@Nonnull @Override public ValueNode cookie(@Nonnull String name) {
80+
@Nonnull @Override public Value cookie(@Nonnull String name) {
8181
return ctx.cookie(name);
8282
}
8383

@@ -101,7 +101,7 @@ public ForwardingContext(@Nonnull Context context) {
101101
return ctx.pathString();
102102
}
103103

104-
@Nonnull @Override public ValueNode path(@Nonnull String name) {
104+
@Nonnull @Override public Value path(@Nonnull String name) {
105105
return ctx.path(name);
106106
}
107107

@@ -150,7 +150,7 @@ public ForwardingContext(@Nonnull Context context) {
150150
return ctx.header();
151151
}
152152

153-
@Nonnull @Override public ValueNode header(@Nonnull String name) {
153+
@Nonnull @Override public Value header(@Nonnull String name) {
154154
return ctx.header(name);
155155
}
156156

jooby/src/main/java/io/jooby/Session.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public interface Session {
3434
* @param name Attribute's name.
3535
* @return An attribute value or missing value.
3636
*/
37-
@Nonnull ValueNode get(@Nonnull String name);
37+
@Nonnull Value get(@Nonnull String name);
3838

3939
/**
4040
* Put a session attribute.
@@ -128,7 +128,7 @@ public interface Session {
128128
* @param name Attribute's name.
129129
* @return Session attribute or missing value.
130130
*/
131-
@Nonnull ValueNode remove(@Nonnull String name);
131+
@Nonnull Value remove(@Nonnull String name);
132132

133133
/**
134134
* Read-only copy of session attributes.

jooby/src/main/java/io/jooby/internal/FlashMapImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import io.jooby.Context;
99
import io.jooby.Cookie;
1010
import io.jooby.FlashMap;
11-
import io.jooby.ValueNode;
11+
import io.jooby.Value;
1212

1313
import java.util.HashMap;
1414
import java.util.Map;
@@ -29,7 +29,7 @@ public class FlashMapImpl extends HashMap<String, String> implements FlashMap {
2929
private Map<String, String> initialScope;
3030

3131
public FlashMapImpl(Context ctx, Cookie template) {
32-
ValueNode cookie = ctx.cookie(template.getName());
32+
Value cookie = ctx.cookie(template.getName());
3333
Map<String, String> seed = cookie.isMissing() ? emptyMap() : decode(cookie.value());
3434
super.putAll(seed);
3535
this.ctx = ctx;

jooby/src/main/java/io/jooby/internal/SessionImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public SessionImpl(Context ctx, String id, Map<String, String> attributes) {
6464
return id;
6565
}
6666

67-
@Override public @Nonnull ValueNode get(@Nonnull String name) {
67+
@Override public @Nonnull Value get(@Nonnull String name) {
6868
return Value.create(ctx, name, attributes.get(name));
6969
}
7070

jooby/src/test/java/io/jooby/internal/ReturnTypeTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.jooby.Context;
44
import io.jooby.Reified;
55
import io.jooby.Route;
6+
import io.jooby.Value;
67
import io.jooby.ValueNode;
78
import io.jooby.internal.asm.ClassSource;
89
import org.junit.jupiter.api.Test;
@@ -140,7 +141,7 @@ public void localVariable() {
140141
});
141142

142143
assertType(Double.class, ctx -> {
143-
ValueNode value = ctx.path("f");
144+
Value value = ctx.path("f");
144145

145146
Double to = value.to(Double.class);
146147

modules/jooby-netty/src/main/java/io/jooby/internal/netty/NettyContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ public NettyContext(ChannelHandlerContext ctx, HttpRequest req, Router router, S
211211
return multipart;
212212
}
213213

214-
@Nonnull @Override public ValueNode header(@Nonnull String name) {
214+
@Nonnull @Override public Value header(@Nonnull String name) {
215215
return Value.create(this, name, req.headers().getAll(name));
216216
}
217217

modules/jooby-test/src/main/java/io/jooby/MockSession.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public MockSession(@Nonnull MockContext ctx) {
4848
return sessionId;
4949
}
5050

51-
@Nonnull @Override public ValueNode get(@Nonnull String name) {
51+
@Nonnull @Override public Value get(@Nonnull String name) {
5252
return Optional.ofNullable(data.get(name))
5353
.map(value -> Value.create(ctx, name, value))
5454
.orElse(Value.missing(name));
@@ -59,8 +59,8 @@ public MockSession(@Nonnull MockContext ctx) {
5959
return this;
6060
}
6161

62-
@Nonnull @Override public ValueNode remove(@Nonnull String name) {
63-
ValueNode value = get(name);
62+
@Nonnull @Override public Value remove(@Nonnull String name) {
63+
Value value = get(name);
6464
data.remove(name);
6565
return value;
6666
}

0 commit comments

Comments
 (0)