Improved typing

This commit is contained in:
2026-02-19 17:20:51 +01:00
parent 1a4647b0f9
commit 5421a1ff16
4 changed files with 42 additions and 17 deletions
@@ -3,6 +3,7 @@ package dev.selimaj.session;
import com.fasterxml.jackson.databind.JsonNode;
import dev.selimaj.session.types.Message;
import dev.selimaj.session.types.Method;
import java.net.URI;
import java.net.http.HttpClient;
@@ -46,11 +47,10 @@ public final class Session {
listener.notify(ws, method, data);
}
public <Req, Res> CompletableFuture<Res> request(
String method,
Req data,
Class<Res> resType) throws Exception {
return listener.request(ws, method, data, resType);
<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());
}
public void close() throws Exception {