Slightly better method ergonomics

This commit is contained in:
2026-02-19 17:26:24 +01:00
parent 5421a1ff16
commit 7851e0d08a
4 changed files with 6 additions and 10 deletions
@@ -48,9 +48,8 @@ public final class Session {
}
<Req extends JsonNode, Res extends JsonNode, Err extends JsonNode> CompletableFuture<Res> request(
Class<? extends Method<Req, Res, Err>> method, Req req) throws Exception {
Method<Req, Res, Err> m = method.getDeclaredConstructor().newInstance();
return listener.request(ws, m.getName(), req, m.getResClass());
Method<Req, Res, Err> method, Req req) throws Exception {
return listener.request(ws, method.getName(), req, method.getResClass());
}
public void close() throws Exception {
@@ -8,7 +8,7 @@ public class Method<Req extends JsonNode, Res extends JsonNode, Err extends Json
private final Class<Res> resClass;
private final Class<Err> errClass;
protected Method(String name, Class<Req> reqClass, Class<Res> resClass, Class<Err> errClass) {
public Method(String name, Class<Req> reqClass, Class<Res> resClass, Class<Err> errClass) {
this.name = name;
this.reqClass = reqClass;
this.resClass = resClass;
@@ -5,9 +5,6 @@ import com.fasterxml.jackson.databind.node.TextNode;
import dev.selimaj.session.types.Method;
public class Methods {
public static class Data extends Method<TextNode, TextNode, TextNode> {
Data() {
super("data", TextNode.class, TextNode.class, TextNode.class);
}
}
public static final Method<TextNode, TextNode, TextNode> Data = new Method<>("data",
TextNode.class, TextNode.class, TextNode.class);
}
@@ -8,7 +8,7 @@ public class SessionTest {
static void testRequest() throws Exception {
Session session = Session.connect("ws://localhost:8080/");
TextNode response = session.request(Methods.Data.class, TextNode.valueOf("Hello from client")).get();
TextNode response = session.request(Methods.Data, TextNode.valueOf("Hello from client")).get();
System.out.println(response);