ServiceMethod$Builder.smali
.class final Lretrofit2/ServiceMethod$Builder;
.super Ljava/lang/Object;
.source "ServiceMethod.java"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"R:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field callAdapter:Lretrofit2/CallAdapter;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lretrofit2/CallAdapter",
"<TT;TR;>;"
}
.end annotation
.end field
.field contentType:Lokhttp3/ad;
.field gotBody:Z
.field gotField:Z
.field gotPart:Z
.field gotPath:Z
.field gotQuery:Z
.field gotUrl:Z
.field hasBody:Z
.field headers:Lokhttp3/z;
.field httpMethod:Ljava/lang/String;
.field isFormEncoded:Z
.field isMultipart:Z
.field final method:Ljava/lang/reflect/Method;
.field final methodAnnotations:[Ljava/lang/annotation/Annotation;
.field final parameterAnnotationsArray:[[Ljava/lang/annotation/Annotation;
.field parameterHandlers:[Lretrofit2/ParameterHandler;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Lretrofit2/ParameterHandler",
"<*>;"
}
.end annotation
.end field
.field final parameterTypes:[Ljava/lang/reflect/Type;
.field relativeUrl:Ljava/lang/String;
.field relativeUrlParamNames:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field responseConverter:Lretrofit2/Converter;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lretrofit2/Converter",
"<",
"Lokhttp3/aq;",
"TT;>;"
}
.end annotation
.end field
.field responseType:Ljava/lang/reflect/Type;
.field final retrofit:Lretrofit2/Retrofit;
# direct methods
.method constructor <init>(Lretrofit2/Retrofit;Ljava/lang/reflect/Method;)V
.registers 4
.prologue
.line 156
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 157
iput-object p1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 158
iput-object p2, p0, Lretrofit2/ServiceMethod$Builder;->method:Ljava/lang/reflect/Method;
.line 159
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->methodAnnotations:[Ljava/lang/annotation/Annotation;
.line 160
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->parameterTypes:[Ljava/lang/reflect/Type;
.line 161
invoke-virtual {p2}, Ljava/lang/reflect/Method;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->parameterAnnotationsArray:[[Ljava/lang/annotation/Annotation;
.line 162
return-void
.end method
.method private createCallAdapter()Lretrofit2/CallAdapter;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lretrofit2/CallAdapter",
"<TT;TR;>;"
}
.end annotation
.prologue
const/4 v3, 0x1
const/4 v4, 0x0
.line 227
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v1
.line 228
invoke-static {v1}, Lretrofit2/Utils;->hasUnresolvableType(Ljava/lang/reflect/Type;)Z
move-result v0
if-eqz v0, :cond_19
.line 229
const-string v0, "Method return type must not include a type variable or wildcard: %s"
new-array v2, v3, [Ljava/lang/Object;
aput-object v1, v2, v4
invoke-direct {p0, v0, v2}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 232
:cond_19
sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
if-ne v1, v0, :cond_26
.line 233
const-string v0, "Service methods cannot return void."
new-array v1, v4, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 235
:cond_26
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
.line 238
:try_start_2c
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
invoke-virtual {v2, v1, v0}, Lretrofit2/Retrofit;->callAdapter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/CallAdapter;
:try_end_31
.catch Ljava/lang/RuntimeException; {:try_start_2c .. :try_end_31} :catch_33
move-result-object v0
return-object v0
.line 239
:catch_33
move-exception v0
.line 240
const-string v2, "Unable to create call adapter for %s"
new-array v3, v3, [Ljava/lang/Object;
aput-object v1, v3, v4
invoke-direct {p0, v0, v2, v3}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.end method
.method private createResponseConverter()Lretrofit2/Converter;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lretrofit2/Converter",
"<",
"Lokhttp3/aq;",
"TT;>;"
}
.end annotation
.prologue
.line 737
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->method:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
.line 739
:try_start_6
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->responseType:Ljava/lang/reflect/Type;
invoke-virtual {v1, v2, v0}, Lretrofit2/Retrofit;->responseBodyConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
:try_end_d
.catch Ljava/lang/RuntimeException; {:try_start_6 .. :try_end_d} :catch_f
move-result-object v0
return-object v0
.line 740
:catch_f
move-exception v0
.line 741
const-string v1, "Unable to create converter for %s"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
iget-object v4, p0, Lretrofit2/ServiceMethod$Builder;->responseType:Ljava/lang/reflect/Type;
aput-object v4, v2, v3
invoke-direct {p0, v0, v1, v2}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.end method
.method private varargs methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
.registers 4
.prologue
.line 746
const/4 v0, 0x0
invoke-direct {p0, v0, p1, p2}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
return-object v0
.end method
.method private varargs methodError(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
.registers 7
.prologue
.line 750
invoke-static {p2, p3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
.line 751
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "\n for method "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->method:Ljava/lang/reflect/Method;
.line 753
invoke-virtual {v2}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "."
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->method:Ljava/lang/reflect/Method;
.line 755
invoke-virtual {v2}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 751
return-object v1
.end method
.method private varargs parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
.registers 6
.prologue
.line 764
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " (parameter #"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
add-int/lit8 v1, p1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ")"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0, p3}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
return-object v0
.end method
.method private varargs parameterError(Ljava/lang/Throwable;ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
.registers 7
.prologue
.line 760
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " (parameter #"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
add-int/lit8 v1, p2, 0x1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ")"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, p1, v0, p4}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
return-object v0
.end method
.method private parseHeaders([Ljava/lang/String;)Lokhttp3/z;
.registers 10
.prologue
const/4 v7, 0x1
const/4 v1, 0x0
.line 313
new-instance v2, Lokhttp3/aa;
invoke-direct {v2}, Lokhttp3/aa;-><init>()V
.line 314
array-length v3, p1
move v0, v1
:goto_9
if-ge v0, v3, :cond_5b
aget-object v4, p1, v0
.line 315
const/16 v5, 0x3a
invoke-virtual {v4, v5}, Ljava/lang/String;->indexOf(I)I
move-result v5
.line 316
const/4 v6, -0x1
if-eq v5, v6, :cond_20
if-eqz v5, :cond_20
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v6
add-int/lit8 v6, v6, -0x1
if-ne v5, v6, :cond_2b
.line 317
:cond_20
const-string v0, "@Headers value must be in the form \"Name: Value\". Found: \"%s\""
new-array v2, v7, [Ljava/lang/Object;
aput-object v4, v2, v1
invoke-direct {p0, v0, v2}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 320
:cond_2b
invoke-virtual {v4, v1, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v6
.line 321
add-int/lit8 v5, v5, 0x1
invoke-virtual {v4, v5}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v4
.line 322
const-string v5, "Content-Type"
invoke-virtual {v5, v6}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_57
.line 323
invoke-static {v4}, Lokhttp3/ad;->hI(Ljava/lang/String;)Lokhttp3/ad;
move-result-object v5
.line 324
if-nez v5, :cond_52
.line 325
const-string v0, "Malformed content type: %s"
new-array v2, v7, [Ljava/lang/Object;
aput-object v4, v2, v1
invoke-direct {p0, v0, v2}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 327
:cond_52
iput-object v5, p0, Lretrofit2/ServiceMethod$Builder;->contentType:Lokhttp3/ad;
.line 314
:goto_54
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 329
:cond_57
invoke-virtual {v2, v6, v4}, Lokhttp3/aa;->bc(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/aa;
goto :goto_54
.line 332
:cond_5b
invoke-virtual {v2}, Lokhttp3/aa;->Rf()Lokhttp3/z;
move-result-object v0
return-object v0
.end method
.method private parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
.registers 9
.prologue
const/4 v4, 0x1
const/4 v3, 0x0
.line 285
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->httpMethod:Ljava/lang/String;
if-eqz v0, :cond_16
.line 286
const-string v0, "Only one HTTP method is allowed. Found: %s and %s."
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Object;
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->httpMethod:Ljava/lang/String;
aput-object v2, v1, v3
aput-object p1, v1, v4
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 289
:cond_16
iput-object p1, p0, Lretrofit2/ServiceMethod$Builder;->httpMethod:Ljava/lang/String;
.line 290
iput-boolean p3, p0, Lretrofit2/ServiceMethod$Builder;->hasBody:Z
.line 292
invoke-virtual {p2}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-eqz v0, :cond_21
.line 310
:goto_20
return-void
.line 297
:cond_21
const/16 v0, 0x3f
invoke-virtual {p2, v0}, Ljava/lang/String;->indexOf(I)I
move-result v0
.line 298
const/4 v1, -0x1
if-eq v0, v1, :cond_4f
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, -0x1
if-ge v0, v1, :cond_4f
.line 300
add-int/lit8 v0, v0, 0x1
invoke-virtual {p2, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
.line 301
sget-object v1, Lretrofit2/ServiceMethod;->PARAM_URL_REGEX:Ljava/util/regex/Pattern;
invoke-virtual {v1, v0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v1
.line 302
invoke-virtual {v1}, Ljava/util/regex/Matcher;->find()Z
move-result v1
if-eqz v1, :cond_4f
.line 303
const-string v1, "URL query string \"%s\" must not have replace block. For dynamic query parameters use @Query."
new-array v2, v4, [Ljava/lang/Object;
aput-object v0, v2, v3
invoke-direct {p0, v1, v2}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 308
:cond_4f
iput-object p2, p0, Lretrofit2/ServiceMethod$Builder;->relativeUrl:Ljava/lang/String;
.line 309
invoke-static {p2}, Lretrofit2/ServiceMethod;->parsePathParameters(Ljava/lang/String;)Ljava/util/Set;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->relativeUrlParamNames:Ljava/util/Set;
goto :goto_20
.end method
.method private parseMethodAnnotation(Ljava/lang/annotation/Annotation;)V
.registers 6
.prologue
const/4 v3, 0x1
const/4 v2, 0x0
.line 245
instance-of v0, p1, Lretrofit2/http/DELETE;
if-eqz v0, :cond_12
.line 246
const-string v0, "DELETE"
check-cast p1, Lretrofit2/http/DELETE;
invoke-interface {p1}, Lretrofit2/http/DELETE;->value()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v0, v1, v2}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
.line 282
:cond_11
:goto_11
return-void
.line 247
:cond_12
instance-of v0, p1, Lretrofit2/http/GET;
if-eqz v0, :cond_22
.line 248
const-string v0, "GET"
check-cast p1, Lretrofit2/http/GET;
invoke-interface {p1}, Lretrofit2/http/GET;->value()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v0, v1, v2}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
goto :goto_11
.line 249
:cond_22
instance-of v0, p1, Lretrofit2/http/HEAD;
if-eqz v0, :cond_44
.line 250
const-string v0, "HEAD"
check-cast p1, Lretrofit2/http/HEAD;
invoke-interface {p1}, Lretrofit2/http/HEAD;->value()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v0, v1, v2}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
.line 251
const-class v0, Ljava/lang/Void;
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->responseType:Ljava/lang/reflect/Type;
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_11
.line 252
const-string v0, "HEAD method must use Void as response type."
new-array v1, v2, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 254
:cond_44
instance-of v0, p1, Lretrofit2/http/PATCH;
if-eqz v0, :cond_54
.line 255
const-string v0, "PATCH"
check-cast p1, Lretrofit2/http/PATCH;
invoke-interface {p1}, Lretrofit2/http/PATCH;->value()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v0, v1, v3}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
goto :goto_11
.line 256
:cond_54
instance-of v0, p1, Lretrofit2/http/POST;
if-eqz v0, :cond_64
.line 257
const-string v0, "POST"
check-cast p1, Lretrofit2/http/POST;
invoke-interface {p1}, Lretrofit2/http/POST;->value()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v0, v1, v3}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
goto :goto_11
.line 258
:cond_64
instance-of v0, p1, Lretrofit2/http/PUT;
if-eqz v0, :cond_74
.line 259
const-string v0, "PUT"
check-cast p1, Lretrofit2/http/PUT;
invoke-interface {p1}, Lretrofit2/http/PUT;->value()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v0, v1, v3}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
goto :goto_11
.line 260
:cond_74
instance-of v0, p1, Lretrofit2/http/OPTIONS;
if-eqz v0, :cond_84
.line 261
const-string v0, "OPTIONS"
check-cast p1, Lretrofit2/http/OPTIONS;
invoke-interface {p1}, Lretrofit2/http/OPTIONS;->value()Ljava/lang/String;
move-result-object v1
invoke-direct {p0, v0, v1, v2}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
goto :goto_11
.line 262
:cond_84
instance-of v0, p1, Lretrofit2/http/HTTP;
if-eqz v0, :cond_9b
.line 263
check-cast p1, Lretrofit2/http/HTTP;
.line 264
invoke-interface {p1}, Lretrofit2/http/HTTP;->method()Ljava/lang/String;
move-result-object v0
invoke-interface {p1}, Lretrofit2/http/HTTP;->path()Ljava/lang/String;
move-result-object v1
invoke-interface {p1}, Lretrofit2/http/HTTP;->hasBody()Z
move-result v2
invoke-direct {p0, v0, v1, v2}, Lretrofit2/ServiceMethod$Builder;->parseHttpMethodAndPath(Ljava/lang/String;Ljava/lang/String;Z)V
goto/16 :goto_11
.line 265
:cond_9b
instance-of v0, p1, Lretrofit2/http/Headers;
if-eqz v0, :cond_b9
.line 266
check-cast p1, Lretrofit2/http/Headers;
invoke-interface {p1}, Lretrofit2/http/Headers;->value()[Ljava/lang/String;
move-result-object v0
.line 267
array-length v1, v0
if-nez v1, :cond_b1
.line 268
const-string v0, "@Headers annotation is empty."
new-array v1, v2, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 270
:cond_b1
invoke-direct {p0, v0}, Lretrofit2/ServiceMethod$Builder;->parseHeaders([Ljava/lang/String;)Lokhttp3/z;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->headers:Lokhttp3/z;
goto/16 :goto_11
.line 271
:cond_b9
instance-of v0, p1, Lretrofit2/http/Multipart;
if-eqz v0, :cond_ce
.line 272
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
if-eqz v0, :cond_ca
.line 273
const-string v0, "Only one encoding annotation is allowed."
new-array v1, v2, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 275
:cond_ca
iput-boolean v3, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
goto/16 :goto_11
.line 276
:cond_ce
instance-of v0, p1, Lretrofit2/http/FormUrlEncoded;
if-eqz v0, :cond_11
.line 277
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
if-eqz v0, :cond_df
.line 278
const-string v0, "Only one encoding annotation is allowed."
new-array v1, v2, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 280
:cond_df
iput-boolean v3, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
goto/16 :goto_11
.end method
.method private parseParameter(ILjava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/ParameterHandler;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/lang/reflect/Type;",
"[",
"Ljava/lang/annotation/Annotation;",
")",
"Lretrofit2/ParameterHandler",
"<*>;"
}
.end annotation
.prologue
const/4 v3, 0x0
.line 337
const/4 v1, 0x0
.line 338
array-length v4, p3
move v2, v3
:goto_4
if-ge v2, v4, :cond_1f
aget-object v0, p3, v2
.line 339
invoke-direct {p0, p1, p2, p3, v0}, Lretrofit2/ServiceMethod$Builder;->parseParameterAnnotation(ILjava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljava/lang/annotation/Annotation;)Lretrofit2/ParameterHandler;
move-result-object v0
.line 342
if-eqz v0, :cond_19
.line 346
if-eqz v1, :cond_1a
.line 347
const-string v0, "Multiple Retrofit annotations found, only one allowed."
new-array v1, v3, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
:cond_19
move-object v0, v1
.line 338
:cond_1a
add-int/lit8 v1, v2, 0x1
move v2, v1
move-object v1, v0
goto :goto_4
.line 353
:cond_1f
if-nez v1, :cond_2a
.line 354
const-string v0, "No Retrofit annotation found."
new-array v1, v3, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 357
:cond_2a
return-object v1
.end method
.method private parseParameterAnnotation(ILjava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljava/lang/annotation/Annotation;)Lretrofit2/ParameterHandler;
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/lang/reflect/Type;",
"[",
"Ljava/lang/annotation/Annotation;",
"Ljava/lang/annotation/Annotation;",
")",
"Lretrofit2/ParameterHandler",
"<*>;"
}
.end annotation
.prologue
const/4 v6, 0x1
const/4 v5, 0x0
.line 362
instance-of v0, p4, Lretrofit2/http/Url;
if-eqz v0, :cond_6d
.line 363
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotUrl:Z
if-eqz v0, :cond_13
.line 364
const-string v0, "Multiple @Url method annotations found."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 366
:cond_13
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotPath:Z
if-eqz v0, :cond_20
.line 367
const-string v0, "@Path parameters may not be used with @Url."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 369
:cond_20
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotQuery:Z
if-eqz v0, :cond_2d
.line 370
const-string v0, "A @Url parameter must not come after a @Query"
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 372
:cond_2d
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->relativeUrl:Ljava/lang/String;
if-eqz v0, :cond_3e
.line 373
const-string v0, "@Url cannot be used with @%s URL"
new-array v1, v6, [Ljava/lang/Object;
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->httpMethod:Ljava/lang/String;
aput-object v2, v1, v5
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 376
:cond_3e
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotUrl:Z
.line 378
const-class v0, Lokhttp3/HttpUrl;
if-eq p2, v0, :cond_5e
const-class v0, Ljava/lang/String;
if-eq p2, v0, :cond_5e
const-class v0, Ljava/net/URI;
if-eq p2, v0, :cond_5e
instance-of v0, p2, Ljava/lang/Class;
if-eqz v0, :cond_64
const-string v0, "android.net.Uri"
check-cast p2, Ljava/lang/Class;
.line 381
invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_64
.line 382
:cond_5e
new-instance v0, Lretrofit2/ParameterHandler$RelativeUrl;
invoke-direct {v0}, Lretrofit2/ParameterHandler$RelativeUrl;-><init>()V
.line 722
:goto_63
return-object v0
.line 384
:cond_64
const-string v0, "@Url must be okhttp3.HttpUrl, String, java.net.URI, or android.net.Uri type."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 388
:cond_6d
instance-of v0, p4, Lretrofit2/http/Path;
if-eqz v0, :cond_b7
.line 389
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotQuery:Z
if-eqz v0, :cond_7e
.line 390
const-string v0, "A @Path parameter must not come after a @Query."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 392
:cond_7e
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotUrl:Z
if-eqz v0, :cond_8b
.line 393
const-string v0, "@Path parameters may not be used with @Url."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 395
:cond_8b
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->relativeUrl:Ljava/lang/String;
if-nez v0, :cond_9c
.line 396
const-string v0, "@Path can only be used with relative url on @%s"
new-array v1, v6, [Ljava/lang/Object;
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->httpMethod:Ljava/lang/String;
aput-object v2, v1, v5
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 398
:cond_9c
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotPath:Z
.line 400
check-cast p4, Lretrofit2/http/Path;
.line 401
invoke-interface {p4}, Lretrofit2/http/Path;->value()Ljava/lang/String;
move-result-object v1
.line 402
invoke-direct {p0, p1, v1}, Lretrofit2/ServiceMethod$Builder;->validatePathName(ILjava/lang/String;)V
.line 404
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
invoke-virtual {v0, p2, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v2
.line 405
new-instance v0, Lretrofit2/ParameterHandler$Path;
invoke-interface {p4}, Lretrofit2/http/Path;->encoded()Z
move-result v3
invoke-direct {v0, v1, v2, v3}, Lretrofit2/ParameterHandler$Path;-><init>(Ljava/lang/String;Lretrofit2/Converter;Z)V
goto :goto_63
.line 407
:cond_b7
instance-of v0, p4, Lretrofit2/http/Query;
if-eqz v0, :cond_146
.line 408
check-cast p4, Lretrofit2/http/Query;
.line 409
invoke-interface {p4}, Lretrofit2/http/Query;->value()Ljava/lang/String;
move-result-object v1
.line 410
invoke-interface {p4}, Lretrofit2/http/Query;->encoded()Z
move-result v2
.line 412
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 413
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotQuery:Z
.line 414
const-class v3, Ljava/lang/Iterable;
invoke-virtual {v3, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_11a
.line 415
instance-of v3, p2, Ljava/lang/reflect/ParameterizedType;
if-nez v3, :cond_103
.line 416
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " must include generic type (e.g., "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 418
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "<String>)"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
.line 416
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 421
:cond_103
check-cast p2, Ljava/lang/reflect/ParameterizedType;
.line 422
invoke-static {v5, p2}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 423
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 424
invoke-virtual {v3, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 425
new-instance v3, Lretrofit2/ParameterHandler$Query;
invoke-direct {v3, v1, v0, v2}, Lretrofit2/ParameterHandler$Query;-><init>(Ljava/lang/String;Lretrofit2/Converter;Z)V
invoke-virtual {v3}, Lretrofit2/ParameterHandler$Query;->iterable()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 426
:cond_11a
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v3
if-eqz v3, :cond_139
.line 427
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lretrofit2/ServiceMethod;->boxIfPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v0
.line 428
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 429
invoke-virtual {v3, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 430
new-instance v3, Lretrofit2/ParameterHandler$Query;
invoke-direct {v3, v1, v0, v2}, Lretrofit2/ParameterHandler$Query;-><init>(Ljava/lang/String;Lretrofit2/Converter;Z)V
invoke-virtual {v3}, Lretrofit2/ParameterHandler$Query;->array()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 432
:cond_139
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 433
invoke-virtual {v0, p2, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v3
.line 434
new-instance v0, Lretrofit2/ParameterHandler$Query;
invoke-direct {v0, v1, v3, v2}, Lretrofit2/ParameterHandler$Query;-><init>(Ljava/lang/String;Lretrofit2/Converter;Z)V
goto/16 :goto_63
.line 437
:cond_146
instance-of v0, p4, Lretrofit2/http/QueryName;
if-eqz v0, :cond_1d1
.line 438
check-cast p4, Lretrofit2/http/QueryName;
.line 439
invoke-interface {p4}, Lretrofit2/http/QueryName;->encoded()Z
move-result v1
.line 441
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 442
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotQuery:Z
.line 443
const-class v2, Ljava/lang/Iterable;
invoke-virtual {v2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_1a5
.line 444
instance-of v2, p2, Ljava/lang/reflect/ParameterizedType;
if-nez v2, :cond_18e
.line 445
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " must include generic type (e.g., "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 447
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "<String>)"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
.line 445
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 450
:cond_18e
check-cast p2, Ljava/lang/reflect/ParameterizedType;
.line 451
invoke-static {v5, p2}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 452
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 453
invoke-virtual {v2, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 454
new-instance v2, Lretrofit2/ParameterHandler$QueryName;
invoke-direct {v2, v0, v1}, Lretrofit2/ParameterHandler$QueryName;-><init>(Lretrofit2/Converter;Z)V
invoke-virtual {v2}, Lretrofit2/ParameterHandler$QueryName;->iterable()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 455
:cond_1a5
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v2
if-eqz v2, :cond_1c4
.line 456
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lretrofit2/ServiceMethod;->boxIfPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v0
.line 457
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 458
invoke-virtual {v2, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 459
new-instance v2, Lretrofit2/ParameterHandler$QueryName;
invoke-direct {v2, v0, v1}, Lretrofit2/ParameterHandler$QueryName;-><init>(Lretrofit2/Converter;Z)V
invoke-virtual {v2}, Lretrofit2/ParameterHandler$QueryName;->array()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 461
:cond_1c4
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 462
invoke-virtual {v0, p2, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v2
.line 463
new-instance v0, Lretrofit2/ParameterHandler$QueryName;
invoke-direct {v0, v2, v1}, Lretrofit2/ParameterHandler$QueryName;-><init>(Lretrofit2/Converter;Z)V
goto/16 :goto_63
.line 466
:cond_1d1
instance-of v0, p4, Lretrofit2/http/QueryMap;
if-eqz v0, :cond_234
.line 467
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 468
const-class v1, Ljava/util/Map;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-nez v1, :cond_1ea
.line 469
const-string v0, "@QueryMap parameter type must be Map."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 471
:cond_1ea
const-class v1, Ljava/util/Map;
invoke-static {p2, v0, v1}, Lretrofit2/Utils;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 472
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-nez v1, :cond_1fd
.line 473
const-string v0, "Map must include generic types (e.g., Map<String, String>)"
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 475
:cond_1fd
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 476
invoke-static {v5, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v1
.line 477
const-class v2, Ljava/lang/String;
if-eq v2, v1, :cond_21d
.line 478
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "@QueryMap keys must be of type String: "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 480
:cond_21d
invoke-static {v6, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 481
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 482
invoke-virtual {v1, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v1
.line 484
new-instance v0, Lretrofit2/ParameterHandler$QueryMap;
check-cast p4, Lretrofit2/http/QueryMap;
invoke-interface {p4}, Lretrofit2/http/QueryMap;->encoded()Z
move-result v2
invoke-direct {v0, v1, v2}, Lretrofit2/ParameterHandler$QueryMap;-><init>(Lretrofit2/Converter;Z)V
goto/16 :goto_63
.line 486
:cond_234
instance-of v0, p4, Lretrofit2/http/Header;
if-eqz v0, :cond_2bd
.line 487
check-cast p4, Lretrofit2/http/Header;
.line 488
invoke-interface {p4}, Lretrofit2/http/Header;->value()Ljava/lang/String;
move-result-object v1
.line 490
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 491
const-class v2, Ljava/lang/Iterable;
invoke-virtual {v2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_291
.line 492
instance-of v2, p2, Ljava/lang/reflect/ParameterizedType;
if-nez v2, :cond_27a
.line 493
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " must include generic type (e.g., "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 495
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "<String>)"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
.line 493
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 498
:cond_27a
check-cast p2, Ljava/lang/reflect/ParameterizedType;
.line 499
invoke-static {v5, p2}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 500
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 501
invoke-virtual {v2, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 502
new-instance v2, Lretrofit2/ParameterHandler$Header;
invoke-direct {v2, v1, v0}, Lretrofit2/ParameterHandler$Header;-><init>(Ljava/lang/String;Lretrofit2/Converter;)V
invoke-virtual {v2}, Lretrofit2/ParameterHandler$Header;->iterable()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 503
:cond_291
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v2
if-eqz v2, :cond_2b0
.line 504
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lretrofit2/ServiceMethod;->boxIfPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v0
.line 505
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 506
invoke-virtual {v2, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 507
new-instance v2, Lretrofit2/ParameterHandler$Header;
invoke-direct {v2, v1, v0}, Lretrofit2/ParameterHandler$Header;-><init>(Ljava/lang/String;Lretrofit2/Converter;)V
invoke-virtual {v2}, Lretrofit2/ParameterHandler$Header;->array()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 509
:cond_2b0
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 510
invoke-virtual {v0, p2, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v2
.line 511
new-instance v0, Lretrofit2/ParameterHandler$Header;
invoke-direct {v0, v1, v2}, Lretrofit2/ParameterHandler$Header;-><init>(Ljava/lang/String;Lretrofit2/Converter;)V
goto/16 :goto_63
.line 514
:cond_2bd
instance-of v0, p4, Lretrofit2/http/HeaderMap;
if-eqz v0, :cond_31a
.line 515
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 516
const-class v1, Ljava/util/Map;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-nez v1, :cond_2d6
.line 517
const-string v0, "@HeaderMap parameter type must be Map."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 519
:cond_2d6
const-class v1, Ljava/util/Map;
invoke-static {p2, v0, v1}, Lretrofit2/Utils;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 520
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-nez v1, :cond_2e9
.line 521
const-string v0, "Map must include generic types (e.g., Map<String, String>)"
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 523
:cond_2e9
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 524
invoke-static {v5, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v1
.line 525
const-class v2, Ljava/lang/String;
if-eq v2, v1, :cond_309
.line 526
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "@HeaderMap keys must be of type String: "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 528
:cond_309
invoke-static {v6, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 529
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 530
invoke-virtual {v1, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v1
.line 532
new-instance v0, Lretrofit2/ParameterHandler$HeaderMap;
invoke-direct {v0, v1}, Lretrofit2/ParameterHandler$HeaderMap;-><init>(Lretrofit2/Converter;)V
goto/16 :goto_63
.line 534
:cond_31a
instance-of v0, p4, Lretrofit2/http/Field;
if-eqz v0, :cond_3b6
.line 535
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
if-nez v0, :cond_32b
.line 536
const-string v0, "@Field parameters can only be used with form encoding."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 538
:cond_32b
check-cast p4, Lretrofit2/http/Field;
.line 539
invoke-interface {p4}, Lretrofit2/http/Field;->value()Ljava/lang/String;
move-result-object v1
.line 540
invoke-interface {p4}, Lretrofit2/http/Field;->encoded()Z
move-result v2
.line 542
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotField:Z
.line 544
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 545
const-class v3, Ljava/lang/Iterable;
invoke-virtual {v3, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_38a
.line 546
instance-of v3, p2, Ljava/lang/reflect/ParameterizedType;
if-nez v3, :cond_373
.line 547
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " must include generic type (e.g., "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 549
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "<String>)"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
.line 547
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 552
:cond_373
check-cast p2, Ljava/lang/reflect/ParameterizedType;
.line 553
invoke-static {v5, p2}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 554
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 555
invoke-virtual {v3, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 556
new-instance v3, Lretrofit2/ParameterHandler$Field;
invoke-direct {v3, v1, v0, v2}, Lretrofit2/ParameterHandler$Field;-><init>(Ljava/lang/String;Lretrofit2/Converter;Z)V
invoke-virtual {v3}, Lretrofit2/ParameterHandler$Field;->iterable()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 557
:cond_38a
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v3
if-eqz v3, :cond_3a9
.line 558
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lretrofit2/ServiceMethod;->boxIfPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v0
.line 559
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 560
invoke-virtual {v3, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 561
new-instance v3, Lretrofit2/ParameterHandler$Field;
invoke-direct {v3, v1, v0, v2}, Lretrofit2/ParameterHandler$Field;-><init>(Ljava/lang/String;Lretrofit2/Converter;Z)V
invoke-virtual {v3}, Lretrofit2/ParameterHandler$Field;->array()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 563
:cond_3a9
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 564
invoke-virtual {v0, p2, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v3
.line 565
new-instance v0, Lretrofit2/ParameterHandler$Field;
invoke-direct {v0, v1, v3, v2}, Lretrofit2/ParameterHandler$Field;-><init>(Ljava/lang/String;Lretrofit2/Converter;Z)V
goto/16 :goto_63
.line 568
:cond_3b6
instance-of v0, p4, Lretrofit2/http/FieldMap;
if-eqz v0, :cond_428
.line 569
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
if-nez v0, :cond_3c7
.line 570
const-string v0, "@FieldMap parameters can only be used with form encoding."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 572
:cond_3c7
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 573
const-class v1, Ljava/util/Map;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-nez v1, :cond_3dc
.line 574
const-string v0, "@FieldMap parameter type must be Map."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 576
:cond_3dc
const-class v1, Ljava/util/Map;
invoke-static {p2, v0, v1}, Lretrofit2/Utils;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 577
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-nez v1, :cond_3ef
.line 578
const-string v0, "Map must include generic types (e.g., Map<String, String>)"
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 581
:cond_3ef
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 582
invoke-static {v5, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v1
.line 583
const-class v2, Ljava/lang/String;
if-eq v2, v1, :cond_40f
.line 584
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "@FieldMap keys must be of type String: "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 586
:cond_40f
invoke-static {v6, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 587
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
.line 588
invoke-virtual {v1, v0, p3}, Lretrofit2/Retrofit;->stringConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v1
.line 590
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotField:Z
.line 591
new-instance v0, Lretrofit2/ParameterHandler$FieldMap;
check-cast p4, Lretrofit2/http/FieldMap;
invoke-interface {p4}, Lretrofit2/http/FieldMap;->encoded()Z
move-result v2
invoke-direct {v0, v1, v2}, Lretrofit2/ParameterHandler$FieldMap;-><init>(Lretrofit2/Converter;Z)V
goto/16 :goto_63
.line 593
:cond_428
instance-of v0, p4, Lretrofit2/http/Part;
if-eqz v0, :cond_5c4
.line 594
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
if-nez v0, :cond_439
.line 595
const-string v0, "@Part parameters can only be used with multipart encoding."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 597
:cond_439
check-cast p4, Lretrofit2/http/Part;
.line 598
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotPart:Z
.line 600
invoke-interface {p4}, Lretrofit2/http/Part;->value()Ljava/lang/String;
move-result-object v0
.line 601
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v1
.line 602
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v2
if-eqz v2, :cond_4de
.line 603
const-class v0, Ljava/lang/Iterable;
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_4a6
.line 604
instance-of v0, p2, Ljava/lang/reflect/ParameterizedType;
if-nez v0, :cond_483
.line 605
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " must include generic type (e.g., "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
.line 607
invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "<String>)"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
.line 605
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 610
:cond_483
check-cast p2, Ljava/lang/reflect/ParameterizedType;
.line 611
invoke-static {v5, p2}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 612
const-class v1, Lokhttp3/ag;
invoke-static {v0}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_49e
.line 613
const-string v0, "@Part annotation must supply a name or use MultipartBody.Part parameter type."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 616
:cond_49e
sget-object v0, Lretrofit2/ParameterHandler$RawPart;->INSTANCE:Lretrofit2/ParameterHandler$RawPart;
invoke-virtual {v0}, Lretrofit2/ParameterHandler$RawPart;->iterable()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 617
:cond_4a6
invoke-virtual {v1}, Ljava/lang/Class;->isArray()Z
move-result v0
if-eqz v0, :cond_4c9
.line 618
invoke-virtual {v1}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
.line 619
const-class v1, Lokhttp3/ag;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_4c1
.line 620
const-string v0, "@Part annotation must supply a name or use MultipartBody.Part parameter type."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 623
:cond_4c1
sget-object v0, Lretrofit2/ParameterHandler$RawPart;->INSTANCE:Lretrofit2/ParameterHandler$RawPart;
invoke-virtual {v0}, Lretrofit2/ParameterHandler$RawPart;->array()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 624
:cond_4c9
const-class v0, Lokhttp3/ag;
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_4d5
.line 625
sget-object v0, Lretrofit2/ParameterHandler$RawPart;->INSTANCE:Lretrofit2/ParameterHandler$RawPart;
goto/16 :goto_63
.line 627
:cond_4d5
const-string v0, "@Part annotation must supply a name or use MultipartBody.Part parameter type."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 631
:cond_4de
const/4 v2, 0x4
new-array v2, v2, [Ljava/lang/String;
const-string v3, "Content-Disposition"
aput-object v3, v2, v5
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "form-data; name=\""
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v3, "\""
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
aput-object v0, v2, v6
const/4 v0, 0x2
const-string v3, "Content-Transfer-Encoding"
aput-object v3, v2, v0
const/4 v0, 0x3
.line 633
invoke-interface {p4}, Lretrofit2/http/Part;->encoding()Ljava/lang/String;
move-result-object v3
aput-object v3, v2, v0
.line 632
invoke-static {v2}, Lokhttp3/z;->j([Ljava/lang/String;)Lokhttp3/z;
move-result-object v2
.line 635
const-class v0, Ljava/lang/Iterable;
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_572
.line 636
instance-of v0, p2, Ljava/lang/reflect/ParameterizedType;
if-nez v0, :cond_544
.line 637
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " must include generic type (e.g., "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
.line 639
invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "<String>)"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
.line 637
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 642
:cond_544
check-cast p2, Ljava/lang/reflect/ParameterizedType;
.line 643
invoke-static {v5, p2}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 644
const-class v1, Lokhttp3/ag;
invoke-static {v0}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_55f
.line 645
const-string v0, "@Part parameters using the MultipartBody.Part must not include a part name in the annotation."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 648
:cond_55f
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->methodAnnotations:[Ljava/lang/annotation/Annotation;
.line 649
invoke-virtual {v1, v0, p3, v3}, Lretrofit2/Retrofit;->requestBodyConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 650
new-instance v1, Lretrofit2/ParameterHandler$Part;
invoke-direct {v1, v2, v0}, Lretrofit2/ParameterHandler$Part;-><init>(Lokhttp3/z;Lretrofit2/Converter;)V
invoke-virtual {v1}, Lretrofit2/ParameterHandler$Part;->iterable()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 651
:cond_572
invoke-virtual {v1}, Ljava/lang/Class;->isArray()Z
move-result v0
if-eqz v0, :cond_5a4
.line 652
invoke-virtual {v1}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lretrofit2/ServiceMethod;->boxIfPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v0
.line 653
const-class v1, Lokhttp3/ag;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_591
.line 654
const-string v0, "@Part parameters using the MultipartBody.Part must not include a part name in the annotation."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 657
:cond_591
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->methodAnnotations:[Ljava/lang/annotation/Annotation;
.line 658
invoke-virtual {v1, v0, p3, v3}, Lretrofit2/Retrofit;->requestBodyConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v0
.line 659
new-instance v1, Lretrofit2/ParameterHandler$Part;
invoke-direct {v1, v2, v0}, Lretrofit2/ParameterHandler$Part;-><init>(Lokhttp3/z;Lretrofit2/Converter;)V
invoke-virtual {v1}, Lretrofit2/ParameterHandler$Part;->array()Lretrofit2/ParameterHandler;
move-result-object v0
goto/16 :goto_63
.line 660
:cond_5a4
const-class v0, Lokhttp3/ag;
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_5b5
.line 661
const-string v0, "@Part parameters using the MultipartBody.Part must not include a part name in the annotation."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 664
:cond_5b5
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->methodAnnotations:[Ljava/lang/annotation/Annotation;
.line 665
invoke-virtual {v0, p2, p3, v1}, Lretrofit2/Retrofit;->requestBodyConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v1
.line 666
new-instance v0, Lretrofit2/ParameterHandler$Part;
invoke-direct {v0, v2, v1}, Lretrofit2/ParameterHandler$Part;-><init>(Lokhttp3/z;Lretrofit2/Converter;)V
goto/16 :goto_63
.line 670
:cond_5c4
instance-of v0, p4, Lretrofit2/http/PartMap;
if-eqz v0, :cond_64d
.line 671
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
if-nez v0, :cond_5d5
.line 672
const-string v0, "@PartMap parameters can only be used with multipart encoding."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 674
:cond_5d5
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotPart:Z
.line 675
invoke-static {p2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v0
.line 676
const-class v1, Ljava/util/Map;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-nez v1, :cond_5ec
.line 677
const-string v0, "@PartMap parameter type must be Map."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 679
:cond_5ec
const-class v1, Ljava/util/Map;
invoke-static {p2, v0, v1}, Lretrofit2/Utils;->getSupertype(Ljava/lang/reflect/Type;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Type;
move-result-object v0
.line 680
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-nez v1, :cond_5ff
.line 681
const-string v0, "Map must include generic types (e.g., Map<String, String>)"
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 683
:cond_5ff
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 685
invoke-static {v5, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v1
.line 686
const-class v2, Ljava/lang/String;
if-eq v2, v1, :cond_61f
.line 687
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "@PartMap keys must be of type String: "
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 690
:cond_61f
invoke-static {v6, v0}, Lretrofit2/Utils;->getParameterUpperBound(ILjava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/Type;
move-result-object v0
.line 691
const-class v1, Lokhttp3/ag;
invoke-static {v0}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_638
.line 692
const-string v0, "@PartMap values cannot be MultipartBody.Part. Use @Part List<Part> or a different value type instead."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 696
:cond_638
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->methodAnnotations:[Ljava/lang/annotation/Annotation;
.line 697
invoke-virtual {v1, v0, p3, v2}, Lretrofit2/Retrofit;->requestBodyConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
move-result-object v1
.line 699
check-cast p4, Lretrofit2/http/PartMap;
.line 700
new-instance v0, Lretrofit2/ParameterHandler$PartMap;
invoke-interface {p4}, Lretrofit2/http/PartMap;->encoding()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v1, v2}, Lretrofit2/ParameterHandler$PartMap;-><init>(Lretrofit2/Converter;Ljava/lang/String;)V
goto/16 :goto_63
.line 702
:cond_64d
instance-of v0, p4, Lretrofit2/http/Body;
if-eqz v0, :cond_68c
.line 703
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
if-nez v0, :cond_659
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
if-eqz v0, :cond_662
.line 704
:cond_659
const-string v0, "@Body parameters cannot be used with form or multi-part encoding."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 707
:cond_662
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotBody:Z
if-eqz v0, :cond_66f
.line 708
const-string v0, "Multiple @Body method annotations found."
new-array v1, v5, [Ljava/lang/Object;
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 713
:cond_66f
:try_start_66f
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->retrofit:Lretrofit2/Retrofit;
iget-object v1, p0, Lretrofit2/ServiceMethod$Builder;->methodAnnotations:[Ljava/lang/annotation/Annotation;
invoke-virtual {v0, p2, p3, v1}, Lretrofit2/Retrofit;->requestBodyConverter(Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;[Ljava/lang/annotation/Annotation;)Lretrofit2/Converter;
:try_end_676
.catch Ljava/lang/RuntimeException; {:try_start_66f .. :try_end_676} :catch_680
move-result-object v1
.line 718
iput-boolean v6, p0, Lretrofit2/ServiceMethod$Builder;->gotBody:Z
.line 719
new-instance v0, Lretrofit2/ParameterHandler$Body;
invoke-direct {v0, v1}, Lretrofit2/ParameterHandler$Body;-><init>(Lretrofit2/Converter;)V
goto/16 :goto_63
.line 714
:catch_680
move-exception v0
.line 716
const-string v1, "Unable to create @Body converter for %s"
new-array v2, v6, [Ljava/lang/Object;
aput-object p2, v2, v5
invoke-direct {p0, v0, p1, v1, v2}, Lretrofit2/ServiceMethod$Builder;->parameterError(Ljava/lang/Throwable;ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 722
:cond_68c
const/4 v0, 0x0
goto/16 :goto_63
.end method
.method private validatePathName(ILjava/lang/String;)V
.registers 8
.prologue
const/4 v1, 0x2
const/4 v4, 0x1
const/4 v3, 0x0
.line 726
sget-object v0, Lretrofit2/ServiceMethod;->PARAM_NAME_REGEX:Ljava/util/regex/Pattern;
invoke-virtual {v0, p2}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
move-result v0
if-nez v0, :cond_22
.line 727
const-string v0, "@Path parameter name must match %s. Found: %s"
new-array v1, v1, [Ljava/lang/Object;
sget-object v2, Lretrofit2/ServiceMethod;->PARAM_URL_REGEX:Ljava/util/regex/Pattern;
.line 728
invoke-virtual {v2}, Ljava/util/regex/Pattern;->pattern()Ljava/lang/String;
move-result-object v2
aput-object v2, v1, v3
aput-object p2, v1, v4
.line 727
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 731
:cond_22
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->relativeUrlParamNames:Ljava/util/Set;
invoke-interface {v0, p2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_39
.line 732
const-string v0, "URL \"%s\" does not contain \"{%s}\"."
new-array v1, v1, [Ljava/lang/Object;
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->relativeUrl:Ljava/lang/String;
aput-object v2, v1, v3
aput-object p2, v1, v4
invoke-direct {p0, p1, v0, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 734
:cond_39
return-void
.end method
# virtual methods
.method public final build()Lretrofit2/ServiceMethod;
.registers 8
.prologue
const/4 v6, 0x1
const/4 v1, 0x0
.line 165
invoke-direct {p0}, Lretrofit2/ServiceMethod$Builder;->createCallAdapter()Lretrofit2/CallAdapter;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->callAdapter:Lretrofit2/CallAdapter;
.line 166
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->callAdapter:Lretrofit2/CallAdapter;
invoke-interface {v0}, Lretrofit2/CallAdapter;->responseType()Ljava/lang/reflect/Type;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->responseType:Ljava/lang/reflect/Type;
.line 167
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->responseType:Ljava/lang/reflect/Type;
const-class v2, Lretrofit2/Response;
if-eq v0, v2, :cond_1c
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->responseType:Ljava/lang/reflect/Type;
const-class v2, Lokhttp3/ao;
if-ne v0, v2, :cond_42
.line 168
:cond_1c
new-instance v0, Ljava/lang/StringBuilder;
const-string v2, "\'"
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->responseType:Ljava/lang/reflect/Type;
.line 169
invoke-static {v2}, Lretrofit2/Utils;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "\' is not a valid response body type. Did you mean ResponseBody?"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
new-array v1, v1, [Ljava/lang/Object;
.line 168
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 172
:cond_42
invoke-direct {p0}, Lretrofit2/ServiceMethod$Builder;->createResponseConverter()Lretrofit2/Converter;
move-result-object v0
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->responseConverter:Lretrofit2/Converter;
.line 174
iget-object v2, p0, Lretrofit2/ServiceMethod$Builder;->methodAnnotations:[Ljava/lang/annotation/Annotation;
array-length v3, v2
move v0, v1
:goto_4c
if-ge v0, v3, :cond_56
aget-object v4, v2, v0
.line 175
invoke-direct {p0, v4}, Lretrofit2/ServiceMethod$Builder;->parseMethodAnnotation(Ljava/lang/annotation/Annotation;)V
.line 174
add-int/lit8 v0, v0, 0x1
goto :goto_4c
.line 178
:cond_56
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->httpMethod:Ljava/lang/String;
if-nez v0, :cond_63
.line 179
const-string v0, "HTTP method annotation is required (e.g., @GET, @POST, etc.)."
new-array v1, v1, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 182
:cond_63
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->hasBody:Z
if-nez v0, :cond_81
.line 183
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
if-eqz v0, :cond_74
.line 184
const-string v0, "Multipart can only be specified on HTTP methods with request body (e.g., @POST)."
new-array v1, v1, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 187
:cond_74
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
if-eqz v0, :cond_81
.line 188
const-string v0, "FormUrlEncoded can only be specified on HTTP methods with request body (e.g., @POST)."
new-array v1, v1, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 193
:cond_81
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->parameterAnnotationsArray:[[Ljava/lang/annotation/Annotation;
array-length v2, v0
.line 194
new-array v0, v2, [Lretrofit2/ParameterHandler;
iput-object v0, p0, Lretrofit2/ServiceMethod$Builder;->parameterHandlers:[Lretrofit2/ParameterHandler;
move v0, v1
.line 195
:goto_89
if-ge v0, v2, :cond_ba
.line 196
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->parameterTypes:[Ljava/lang/reflect/Type;
aget-object v3, v3, v0
.line 197
invoke-static {v3}, Lretrofit2/Utils;->hasUnresolvableType(Ljava/lang/reflect/Type;)Z
move-result v4
if-eqz v4, :cond_a0
.line 198
const-string v2, "Parameter type must not include a type variable or wildcard: %s"
new-array v4, v6, [Ljava/lang/Object;
aput-object v3, v4, v1
invoke-direct {p0, v0, v2, v4}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 202
:cond_a0
iget-object v4, p0, Lretrofit2/ServiceMethod$Builder;->parameterAnnotationsArray:[[Ljava/lang/annotation/Annotation;
aget-object v4, v4, v0
.line 203
if-nez v4, :cond_af
.line 204
const-string v2, "No Retrofit annotation found."
new-array v1, v1, [Ljava/lang/Object;
invoke-direct {p0, v0, v2, v1}, Lretrofit2/ServiceMethod$Builder;->parameterError(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 207
:cond_af
iget-object v5, p0, Lretrofit2/ServiceMethod$Builder;->parameterHandlers:[Lretrofit2/ParameterHandler;
invoke-direct {p0, v0, v3, v4}, Lretrofit2/ServiceMethod$Builder;->parseParameter(ILjava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;)Lretrofit2/ParameterHandler;
move-result-object v3
aput-object v3, v5, v0
.line 195
add-int/lit8 v0, v0, 0x1
goto :goto_89
.line 210
:cond_ba
iget-object v0, p0, Lretrofit2/ServiceMethod$Builder;->relativeUrl:Ljava/lang/String;
if-nez v0, :cond_cf
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotUrl:Z
if-nez v0, :cond_cf
.line 211
const-string v0, "Missing either @%s URL or @Url parameter."
new-array v2, v6, [Ljava/lang/Object;
iget-object v3, p0, Lretrofit2/ServiceMethod$Builder;->httpMethod:Ljava/lang/String;
aput-object v3, v2, v1
invoke-direct {p0, v0, v2}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 213
:cond_cf
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
if-nez v0, :cond_e8
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
if-nez v0, :cond_e8
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->hasBody:Z
if-nez v0, :cond_e8
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotBody:Z
if-eqz v0, :cond_e8
.line 214
const-string v0, "Non-body HTTP method cannot contain @Body."
new-array v1, v1, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 216
:cond_e8
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isFormEncoded:Z
if-eqz v0, :cond_f9
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotField:Z
if-nez v0, :cond_f9
.line 217
const-string v0, "Form-encoded method must contain at least one @Field."
new-array v1, v1, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 219
:cond_f9
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->isMultipart:Z
if-eqz v0, :cond_10a
iget-boolean v0, p0, Lretrofit2/ServiceMethod$Builder;->gotPart:Z
if-nez v0, :cond_10a
.line 220
const-string v0, "Multipart method must contain at least one @Part."
new-array v1, v1, [Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lretrofit2/ServiceMethod$Builder;->methodError(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.line 223
:cond_10a
new-instance v0, Lretrofit2/ServiceMethod;
invoke-direct {v0, p0}, Lretrofit2/ServiceMethod;-><init>(Lretrofit2/ServiceMethod$Builder;)V
return-object v0
.end method