MapField.smali
.class public Lcom/google/protobuf/MapField;
.super Ljava/lang/Object;
.source "MapField.java"
# interfaces
.implements Lcom/google/protobuf/dx;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Lcom/google/protobuf/dx;"
}
.end annotation
# instance fields
.field private volatile bmM:Lcom/google/protobuf/MapField$StorageMode;
.field private bmN:Lcom/google/protobuf/do;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/protobuf/do",
"<TK;TV;>;"
}
.end annotation
.end field
.field private bmO:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lcom/google/protobuf/Message;",
">;"
}
.end annotation
.end field
.field private final bmP:Lcom/google/protobuf/dn;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/protobuf/dn",
"<TK;TV;>;"
}
.end annotation
.end field
.field private volatile isMutable:Z
# direct methods
.method private ED()Ljava/util/Map;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map",
"<TK;TV;>;"
}
.end annotation
.prologue
.line 180
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
sget-object v1, Lcom/google/protobuf/MapField$StorageMode;->LIST:Lcom/google/protobuf/MapField$StorageMode;
if-ne v0, v1, :cond_31
.line 181
monitor-enter p0
.line 182
:try_start_7
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
sget-object v1, Lcom/google/protobuf/MapField$StorageMode;->LIST:Lcom/google/protobuf/MapField$StorageMode;
if-ne v0, v1, :cond_30
.line 183
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmO:Ljava/util/List;
.line 1171
new-instance v1, Ljava/util/LinkedHashMap;
invoke-direct {v1}, Ljava/util/LinkedHashMap;-><init>()V
.line 1172
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_18
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_25
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
goto :goto_18
.line 186
:catchall_22
move-exception v0
monitor-exit p0
:try_end_24
.catchall {:try_start_7 .. :try_end_24} :catchall_22
throw v0
.line 1175
:cond_25
:try_start_25
new-instance v0, Lcom/google/protobuf/do;
invoke-direct {v0, p0, v1}, Lcom/google/protobuf/do;-><init>(Lcom/google/protobuf/dx;Ljava/util/Map;)V
.line 183
iput-object v0, p0, Lcom/google/protobuf/MapField;->bmN:Lcom/google/protobuf/do;
.line 184
sget-object v0, Lcom/google/protobuf/MapField$StorageMode;->BOTH:Lcom/google/protobuf/MapField$StorageMode;
iput-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
.line 186
:cond_30
monitor-exit p0
:try_end_31
.catchall {:try_start_25 .. :try_end_31} :catchall_22
.line 188
:cond_31
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmN:Lcom/google/protobuf/do;
invoke-static {v0}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
move-result-object v0
return-object v0
.end method
.method private a(Lcom/google/protobuf/do;)Ljava/util/List;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/protobuf/do",
"<TK;TV;>;)",
"Ljava/util/List",
"<",
"Lcom/google/protobuf/Message;",
">;"
}
.end annotation
.prologue
.line 161
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 162
invoke-virtual {p1}, Lcom/google/protobuf/do;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_d
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_29
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 165
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
.line 1152
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmP:Lcom/google/protobuf/dn;
invoke-interface {v0}, Lcom/google/protobuf/dn;->EH()Lcom/google/protobuf/Message;
move-result-object v0
.line 163
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_d
.line 167
:cond_29
return-object v1
.end method
# virtual methods
.method final EE()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Lcom/google/protobuf/Message;",
">;"
}
.end annotation
.prologue
.line 248
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
sget-object v1, Lcom/google/protobuf/MapField$StorageMode;->LIST:Lcom/google/protobuf/MapField$StorageMode;
if-eq v0, v1, :cond_1b
.line 249
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
sget-object v1, Lcom/google/protobuf/MapField$StorageMode;->MAP:Lcom/google/protobuf/MapField$StorageMode;
if-ne v0, v1, :cond_14
.line 250
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmN:Lcom/google/protobuf/do;
invoke-direct {p0, v0}, Lcom/google/protobuf/MapField;->a(Lcom/google/protobuf/do;)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/google/protobuf/MapField;->bmO:Ljava/util/List;
.line 252
:cond_14
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/protobuf/MapField;->bmN:Lcom/google/protobuf/do;
.line 253
sget-object v0, Lcom/google/protobuf/MapField$StorageMode;->LIST:Lcom/google/protobuf/MapField$StorageMode;
iput-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
.line 255
:cond_1b
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmO:Ljava/util/List;
return-object v0
.end method
.method final EF()Lcom/google/protobuf/Message;
.registers 2
.prologue
.line 263
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmP:Lcom/google/protobuf/dn;
invoke-interface {v0}, Lcom/google/protobuf/dn;->EI()Lcom/google/protobuf/Message;
move-result-object v0
return-object v0
.end method
.method public final EG()V
.registers 2
.prologue
.line 286
.line 1278
iget-boolean v0, p0, Lcom/google/protobuf/MapField;->isMutable:Z
.line 287
new-instance v0, Ljava/lang/UnsupportedOperationException;
invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw v0
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 4
.prologue
.line 215
instance-of v0, p1, Lcom/google/protobuf/MapField;
if-nez v0, :cond_6
.line 216
const/4 v0, 0x0
.line 219
:goto_5
return v0
.line 218
:cond_6
check-cast p1, Lcom/google/protobuf/MapField;
.line 219
invoke-direct {p0}, Lcom/google/protobuf/MapField;->ED()Ljava/util/Map;
move-result-object v0
invoke-direct {p1}, Lcom/google/protobuf/MapField;->ED()Ljava/util/Map;
move-result-object v1
invoke-static {v0, v1}, Lcom/google/protobuf/MapFieldLite;->equals(Ljava/util/Map;Ljava/util/Map;)Z
move-result v0
goto :goto_5
.end method
.method final getList()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Lcom/google/protobuf/Message;",
">;"
}
.end annotation
.prologue
.line 235
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
sget-object v1, Lcom/google/protobuf/MapField$StorageMode;->MAP:Lcom/google/protobuf/MapField$StorageMode;
if-ne v0, v1, :cond_1a
.line 236
monitor-enter p0
.line 237
:try_start_7
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
sget-object v1, Lcom/google/protobuf/MapField$StorageMode;->MAP:Lcom/google/protobuf/MapField$StorageMode;
if-ne v0, v1, :cond_19
.line 238
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmN:Lcom/google/protobuf/do;
invoke-direct {p0, v0}, Lcom/google/protobuf/MapField;->a(Lcom/google/protobuf/do;)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/google/protobuf/MapField;->bmO:Ljava/util/List;
.line 239
sget-object v0, Lcom/google/protobuf/MapField$StorageMode;->BOTH:Lcom/google/protobuf/MapField$StorageMode;
iput-object v0, p0, Lcom/google/protobuf/MapField;->bmM:Lcom/google/protobuf/MapField$StorageMode;
.line 241
:cond_19
monitor-exit p0
:try_end_1a
.catchall {:try_start_7 .. :try_end_1a} :catchall_21
.line 243
:cond_1a
iget-object v0, p0, Lcom/google/protobuf/MapField;->bmO:Ljava/util/List;
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v0
return-object v0
.line 241
:catchall_21
move-exception v0
:try_start_22
monitor-exit p0
:try_end_23
.catchall {:try_start_22 .. :try_end_23} :catchall_21
throw v0
.end method
.method public hashCode()I
.registers 2
.prologue
.line 224
invoke-direct {p0}, Lcom/google/protobuf/MapField;->ED()Ljava/util/Map;
move-result-object v0
invoke-static {v0}, Lcom/google/protobuf/MapFieldLite;->calculateHashCodeForMap(Ljava/util/Map;)I
move-result v0
return v0
.end method