55 lines
1.6 KiB
Java
55 lines
1.6 KiB
Java
package com.ubtrobot.retrofit.adapter.urest;
|
|
|
|
import java.lang.annotation.Annotation;
|
|
import java.lang.reflect.ParameterizedType;
|
|
import java.lang.reflect.Type;
|
|
import retrofit2.Call;
|
|
import retrofit2.CallAdapter;
|
|
import retrofit2.Retrofit;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class URestCallAdapterFactory extends CallAdapter.Factory {
|
|
|
|
private static final class ResponseCallAdapter<R> implements CallAdapter<R, URestCall<R>> {
|
|
Retrofit a;
|
|
Type b;
|
|
|
|
ResponseCallAdapter(Retrofit retrofit, Type type) {
|
|
this.a = retrofit;
|
|
this.b = type;
|
|
}
|
|
|
|
@Override // retrofit2.CallAdapter
|
|
public Type responseType() {
|
|
return this.b;
|
|
}
|
|
|
|
@Override // retrofit2.CallAdapter
|
|
public URestCall<R> adapt(Call<R> call) {
|
|
return new URestCall<>(this.a, call);
|
|
}
|
|
}
|
|
|
|
private URestCallAdapterFactory() {
|
|
}
|
|
|
|
private Type a(Type type) {
|
|
if (type instanceof ParameterizedType) {
|
|
return CallAdapter.Factory.getParameterUpperBound(0, (ParameterizedType) type);
|
|
}
|
|
throw new IllegalArgumentException("Call return type must be parameterized as RestCall<Foo> or RestCall<? extends Foo>");
|
|
}
|
|
|
|
public static URestCallAdapterFactory create() {
|
|
return new URestCallAdapterFactory();
|
|
}
|
|
|
|
@Override // retrofit2.CallAdapter.Factory
|
|
public CallAdapter<?, ?> get(Type type, Annotation[] annotationArr, Retrofit retrofit) {
|
|
if (CallAdapter.Factory.getRawType(type) != URestCall.class) {
|
|
return null;
|
|
}
|
|
return new ResponseCallAdapter(retrofit, a(type));
|
|
}
|
|
}
|