From 7851e0d08a9d798cb887f5e0aa839a9f79c9620a Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Thu, 19 Feb 2026 17:26:24 +0100 Subject: [PATCH] Slightly better method ergonomics --- src/main/java/dev/selimaj/session/Session.java | 5 ++--- src/main/java/dev/selimaj/session/types/Method.java | 2 +- src/test/java/dev/selimaj/session/Methods.java | 7 ++----- src/test/java/dev/selimaj/session/SessionTest.java | 2 +- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/java/dev/selimaj/session/Session.java b/src/main/java/dev/selimaj/session/Session.java index 5fcc57f..32909d1 100644 --- a/src/main/java/dev/selimaj/session/Session.java +++ b/src/main/java/dev/selimaj/session/Session.java @@ -48,9 +48,8 @@ public final class Session { } CompletableFuture request( - Class> method, Req req) throws Exception { - Method m = method.getDeclaredConstructor().newInstance(); - return listener.request(ws, m.getName(), req, m.getResClass()); + Method method, Req req) throws Exception { + return listener.request(ws, method.getName(), req, method.getResClass()); } public void close() throws Exception { diff --git a/src/main/java/dev/selimaj/session/types/Method.java b/src/main/java/dev/selimaj/session/types/Method.java index 319fe62..c7c7fa6 100644 --- a/src/main/java/dev/selimaj/session/types/Method.java +++ b/src/main/java/dev/selimaj/session/types/Method.java @@ -8,7 +8,7 @@ public class Method resClass; private final Class errClass; - protected Method(String name, Class reqClass, Class resClass, Class errClass) { + public Method(String name, Class reqClass, Class resClass, Class errClass) { this.name = name; this.reqClass = reqClass; this.resClass = resClass; diff --git a/src/test/java/dev/selimaj/session/Methods.java b/src/test/java/dev/selimaj/session/Methods.java index 031e6e5..b331232 100644 --- a/src/test/java/dev/selimaj/session/Methods.java +++ b/src/test/java/dev/selimaj/session/Methods.java @@ -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 { - Data() { - super("data", TextNode.class, TextNode.class, TextNode.class); - } - } + public static final Method Data = new Method<>("data", + TextNode.class, TextNode.class, TextNode.class); } diff --git a/src/test/java/dev/selimaj/session/SessionTest.java b/src/test/java/dev/selimaj/session/SessionTest.java index 3ac0b76..14a4093 100644 --- a/src/test/java/dev/selimaj/session/SessionTest.java +++ b/src/test/java/dev/selimaj/session/SessionTest.java @@ -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);