From e8278d15e1e213c246762f37176762a4061da0b7 Mon Sep 17 00:00:00 2001 From: Odunlami Zacchaeus Date: Mon, 9 Feb 2026 11:35:11 +0100 Subject: [PATCH 1/2] code refactor --- .../io/github/odunlamizo/jsonbin/JsonBin.java | 4 ++-- .../jsonbin/okhttp/AuthInterceptor.java | 3 +++ .../jsonbin/okhttp/JsonBinOkHttp.java | 23 +++++++++---------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java b/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java index d19d166..d98e83e 100644 --- a/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java +++ b/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java @@ -27,11 +27,11 @@ public interface JsonBin { * strongly-typed {@link Bin} object containing the expected data type {@code T}. * * @param binId the unique identifier of the bin to retrieve; must not be {@code null} - * @param recordClass the class of the expected record type {@code T} used for deserialization; + * @param cls the class of the expected record type {@code T} used for deserialization; * must not be {@code null} * @return a {@link Bin} object containing the deserialized data */ - Bin readBin(@NonNull String binId, @NonNull Class recordClass); + Bin readBin(@NonNull String binId, @NonNull Class cls); /** * Creates a new bin with the provided record. diff --git a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java index 4172b67..a35b65a 100644 --- a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java +++ b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java @@ -1,6 +1,8 @@ package io.github.odunlamizo.jsonbin.okhttp; import java.io.IOException; + +import lombok.NonNull; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; @@ -16,6 +18,7 @@ public AuthInterceptor(String masterKey, String accessKey) { this.accessKey = accessKey; } + @NonNull @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); diff --git a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java index a2a66b8..ea224df 100644 --- a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java +++ b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java @@ -64,11 +64,11 @@ public JsonBinOkHttp build() { } @Override - public Bin readBin(@NonNull String binId, @NonNull Class recordClass) { + public Bin readBin(@NonNull String binId, @NonNull Class cls) { String url = String.format("%s/b/%s", baseUrl, binId); Request request = new Request.Builder().url(url).build(); - return newCall(request, binTypeRef(recordClass)); + return newCall(request, getTypeRef(cls)); } @Override @@ -100,10 +100,7 @@ public Bin createBin(T record, String binName, Boolean isPrivate, String Request request = requestBuilder.build(); - @SuppressWarnings("unchecked") - Class recordClass = (Class) record.getClass(); - - return newCall(request, binTypeRef(recordClass)); + return newCall(request, getTypeRef(getClass(record))); } @Override @@ -121,10 +118,7 @@ public Bin updateBin(@NonNull T record, @NonNull String binId) { Request request = new Request.Builder().url(url).put(body).build(); - @SuppressWarnings("unchecked") - Class recordClass = (Class) record.getClass(); - - return newCall(request, binTypeRef(recordClass)); + return newCall(request, getTypeRef(getClass(record))); } @Override @@ -185,13 +179,18 @@ private T newCall(Request request, TypeReference ref) { } } - private TypeReference> binTypeRef(Class recordClass) { + private TypeReference> getTypeRef(Class cls) { return new TypeReference<>() { @Override public java.lang.reflect.Type getType() { return TypeFactory.defaultInstance() - .constructParametricType(Bin.class, recordClass); + .constructParametricType(Bin.class, cls); } }; } + + @SuppressWarnings("unchecked") + private Class getClass(T object) { + return (Class) object.getClass(); + } } From 8c88433b7131ca647ff8740bf25f15ad5111bbd0 Mon Sep 17 00:00:00 2001 From: Odunlami Zacchaeus Date: Mon, 9 Feb 2026 11:56:56 +0100 Subject: [PATCH 2/2] update --- src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java | 4 ++-- .../io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java | 1 - .../io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java b/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java index d98e83e..4875584 100644 --- a/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java +++ b/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java @@ -27,8 +27,8 @@ public interface JsonBin { * strongly-typed {@link Bin} object containing the expected data type {@code T}. * * @param binId the unique identifier of the bin to retrieve; must not be {@code null} - * @param cls the class of the expected record type {@code T} used for deserialization; - * must not be {@code null} + * @param cls the class of the expected record type {@code T} used for deserialization; must not + * be {@code null} * @return a {@link Bin} object containing the deserialized data */ Bin readBin(@NonNull String binId, @NonNull Class cls); diff --git a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java index a35b65a..fa92c42 100644 --- a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java +++ b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/AuthInterceptor.java @@ -1,7 +1,6 @@ package io.github.odunlamizo.jsonbin.okhttp; import java.io.IOException; - import lombok.NonNull; import okhttp3.Interceptor; import okhttp3.Request; diff --git a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java index ea224df..9b5c0ed 100644 --- a/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java +++ b/src/main/java/io/github/odunlamizo/jsonbin/okhttp/JsonBinOkHttp.java @@ -183,8 +183,7 @@ private TypeReference> getTypeRef(Class cls) { return new TypeReference<>() { @Override public java.lang.reflect.Type getType() { - return TypeFactory.defaultInstance() - .constructParametricType(Bin.class, cls); + return TypeFactory.defaultInstance().constructParametricType(Bin.class, cls); } }; }