diff --git a/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java b/src/main/java/io/github/odunlamizo/jsonbin/JsonBin.java index d19d166..4875584 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; - * 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 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..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,6 +1,7 @@ package io.github.odunlamizo.jsonbin.okhttp; import java.io.IOException; +import lombok.NonNull; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; @@ -16,6 +17,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..9b5c0ed 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,17 @@ 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); + return TypeFactory.defaultInstance().constructParametricType(Bin.class, cls); } }; } + + @SuppressWarnings("unchecked") + private Class getClass(T object) { + return (Class) object.getClass(); + } }