Headers$Builder.smali
.class public final Lokhttp3/Headers$Builder;
.super Ljava/lang/Object;
.source "Headers.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lokhttp3/Headers;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x19
name = "Builder"
.end annotation
# instance fields
.field final namesAndValues:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 257
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 258
new-instance v0, Ljava/util/ArrayList;
const/16 v1, 0x14
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
return-void
.end method
.method private checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V
.registers 13
.param p1, "name" # Ljava/lang/String;
.param p2, "value" # Ljava/lang/String;
.line 339
if-eqz p1, :cond_9c
.line 340
invoke-virtual {p1}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-nez v0, :cond_94
.line 341
const/4 v0, 0x0
.local v0, "i":I
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v1
.local v1, "length":I
:goto_d
const/16 v2, 0x7f
const/4 v3, 0x2
const/4 v4, 0x0
const/4 v5, 0x3
const/4 v6, 0x1
if-ge v0, v1, :cond_3e
.line 342
invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C
move-result v7
.line 343
.local v7, "c":C
const/16 v8, 0x20
if-le v7, v8, :cond_22
if-ge v7, v2, :cond_22
.line 341
.end local v7 # "c":C
add-int/lit8 v0, v0, 0x1
goto :goto_d
.line 344
.restart local v7 # "c":C
:cond_22
new-instance v2, Ljava/lang/IllegalArgumentException;
new-array v5, v5, [Ljava/lang/Object;
.line 345
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v8
aput-object v8, v5, v4
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v5, v6
aput-object p1, v5, v3
.line 344
const-string v3, "Unexpected char %#04x at %d in header name: %s"
invoke-static {v3, v5}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v2
.line 348
.end local v0 # "i":I
.end local v1 # "length":I
.end local v7 # "c":C
:cond_3e
if-eqz p2, :cond_78
.line 349
const/4 v0, 0x0
.restart local v0 # "i":I
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result v1
.restart local v1 # "length":I
:goto_45
if-ge v0, v1, :cond_77
.line 350
invoke-virtual {p2, v0}, Ljava/lang/String;->charAt(I)C
move-result v7
.line 351
.restart local v7 # "c":C
const/16 v8, 0x1f
if-gt v7, v8, :cond_53
const/16 v8, 0x9
if-ne v7, v8, :cond_58
:cond_53
if-ge v7, v2, :cond_58
.line 349
.end local v7 # "c":C
add-int/lit8 v0, v0, 0x1
goto :goto_45
.line 352
.restart local v7 # "c":C
:cond_58
new-instance v2, Ljava/lang/IllegalArgumentException;
const/4 v8, 0x4
new-array v8, v8, [Ljava/lang/Object;
.line 353
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
aput-object v9, v8, v4
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v8, v6
aput-object p1, v8, v3
aput-object p2, v8, v5
.line 352
const-string v3, "Unexpected char %#04x at %d in %s value: %s"
invoke-static {v3, v8}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v2
.line 356
.end local v0 # "i":I
.end local v1 # "length":I
.end local v7 # "c":C
:cond_77
return-void
.line 348
:cond_78
new-instance v0, Ljava/lang/NullPointerException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "value for name "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " == null"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.line 340
:cond_94
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "name is empty"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 339
:cond_9c
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "name == null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
goto :goto_a5
:goto_a4
throw v0
:goto_a5
goto :goto_a4
.end method
# virtual methods
.method public add(Ljava/lang/String;)Lokhttp3/Headers$Builder;
.registers 6
.param p1, "line" # Ljava/lang/String;
.line 279
const-string v0, ":"
invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
.line 280
.local v0, "index":I
const/4 v1, -0x1
if-eq v0, v1, :cond_1d
.line 283
const/4 v1, 0x0
invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v1
add-int/lit8 v2, v0, 0x1
invoke-virtual {p1, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v1, v2}, Lokhttp3/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
move-result-object v1
return-object v1
.line 281
:cond_1d
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Unexpected header: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public add(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
.registers 4
.param p1, "name" # Ljava/lang/String;
.param p2, "value" # Ljava/lang/String;
.line 290
invoke-direct {p0, p1, p2}, Lokhttp3/Headers$Builder;->checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V
.line 291
invoke-virtual {p0, p1, p2}, Lokhttp3/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
move-result-object v0
return-object v0
.end method
.method public addAll(Lokhttp3/Headers;)Lokhttp3/Headers$Builder;
.registers 6
.param p1, "headers" # Lokhttp3/Headers;
.line 298
invoke-virtual {p1}, Lokhttp3/Headers;->size()I
move-result v0
.line 299
.local v0, "size":I
const/4 v1, 0x0
.local v1, "i":I
:goto_5
if-ge v1, v0, :cond_15
.line 300
invoke-virtual {p1, v1}, Lokhttp3/Headers;->name(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {p1, v1}, Lokhttp3/Headers;->value(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {p0, v2, v3}, Lokhttp3/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
.line 299
add-int/lit8 v1, v1, 0x1
goto :goto_5
.line 303
.end local v1 # "i":I
:cond_15
return-object p0
.end method
.method addLenient(Ljava/lang/String;)Lokhttp3/Headers$Builder;
.registers 6
.param p1, "line" # Ljava/lang/String;
.line 265
const-string v0, ":"
const/4 v1, 0x1
invoke-virtual {p1, v0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;I)I
move-result v2
.line 266
.local v2, "index":I
const/4 v3, -0x1
if-eq v2, v3, :cond_1a
.line 267
const/4 v0, 0x0
invoke-virtual {p1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
add-int/lit8 v1, v2, 0x1
invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v0, v1}, Lokhttp3/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
move-result-object v0
return-object v0
.line 268
:cond_1a
invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
const-string v3, ""
if-eqz v0, :cond_2b
.line 271
invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v3, v0}, Lokhttp3/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
move-result-object v0
return-object v0
.line 273
:cond_2b
invoke-virtual {p0, v3, p1}, Lokhttp3/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
move-result-object v0
return-object v0
.end method
.method addLenient(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
.registers 5
.param p1, "name" # Ljava/lang/String;
.param p2, "value" # Ljava/lang/String;
.line 311
iget-object v0, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 312
iget-object v0, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-virtual {p2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 313
return-object p0
.end method
.method public build()Lokhttp3/Headers;
.registers 2
.line 369
new-instance v0, Lokhttp3/Headers;
invoke-direct {v0, p0}, Lokhttp3/Headers;-><init>(Lokhttp3/Headers$Builder;)V
return-object v0
.end method
.method public get(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p1, "name" # Ljava/lang/String;
.line 360
iget-object v0, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
add-int/lit8 v0, v0, -0x2
.local v0, "i":I
:goto_8
if-ltz v0, :cond_26
.line 361
iget-object v1, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {p1, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_23
.line 362
iget-object v1, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
add-int/lit8 v2, v0, 0x1
invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
return-object v1
.line 360
:cond_23
add-int/lit8 v0, v0, -0x2
goto :goto_8
.line 365
.end local v0 # "i":I
:cond_26
const/4 v0, 0x0
return-object v0
.end method
.method public removeAll(Ljava/lang/String;)Lokhttp3/Headers$Builder;
.registers 4
.param p1, "name" # Ljava/lang/String;
.line 317
const/4 v0, 0x0
.local v0, "i":I
:goto_1
iget-object v1, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
if-ge v0, v1, :cond_26
.line 318
iget-object v1, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {p1, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_23
.line 319
iget-object v1, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->remove(I)Ljava/lang/Object;
.line 320
iget-object v1, p0, Lokhttp3/Headers$Builder;->namesAndValues:Ljava/util/List;
invoke-interface {v1, v0}, Ljava/util/List;->remove(I)Ljava/lang/Object;
.line 321
add-int/lit8 v0, v0, -0x2
.line 317
:cond_23
add-int/lit8 v0, v0, 0x2
goto :goto_1
.line 324
.end local v0 # "i":I
:cond_26
return-object p0
.end method
.method public set(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
.registers 3
.param p1, "name" # Ljava/lang/String;
.param p2, "value" # Ljava/lang/String;
.line 332
invoke-direct {p0, p1, p2}, Lokhttp3/Headers$Builder;->checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V
.line 333
invoke-virtual {p0, p1}, Lokhttp3/Headers$Builder;->removeAll(Ljava/lang/String;)Lokhttp3/Headers$Builder;
.line 334
invoke-virtual {p0, p1, p2}, Lokhttp3/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder;
.line 335
return-object p0
.end method