ReadOnlyClassToSerializerMap.smali
.class public final Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;
.super Ljava/lang/Object;
.source "ReadOnlyClassToSerializerMap.java"
# instance fields
.field private final _buckets:[Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
.field private final _mask:I
.field private final _size:I
# direct methods
.method public constructor <init>(Ljava/util/Map;)V
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Lcom/fasterxml/jackson/databind/util/TypeKey;",
"Lcom/fasterxml/jackson/databind/JsonSerializer",
"<",
"Ljava/lang/Object;",
">;>;)V"
}
.end annotation
.prologue
.line 27
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 28
invoke-interface {p1}, Ljava/util/Map;->size()I
move-result v0
invoke-static {v0}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->findSize(I)I
move-result v0
.line 29
iput v0, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_size:I
.line 30
add-int/lit8 v1, v0, -0x1
iput v1, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_mask:I
.line 31
new-array v2, v0, [Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
.line 32
invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_1b
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_44
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 33
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/fasterxml/jackson/databind/util/TypeKey;
.line 34
invoke-virtual {v1}, Lcom/fasterxml/jackson/databind/util/TypeKey;->hashCode()I
move-result v4
iget v5, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_mask:I
and-int/2addr v4, v5
.line 35
new-instance v5, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
aget-object v6, v2, v4
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/fasterxml/jackson/databind/JsonSerializer;
invoke-direct {v5, v6, v1, v0}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;-><init>(Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;Lcom/fasterxml/jackson/databind/util/TypeKey;Lcom/fasterxml/jackson/databind/JsonSerializer;)V
aput-object v5, v2, v4
goto :goto_1b
.line 37
:cond_44
iput-object v2, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_buckets:[Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
.line 38
return-void
.end method
.method private static final findSize(I)I
.registers 3
.prologue
.line 43
const/16 v0, 0x40
if-gt p0, v0, :cond_c
add-int v0, p0, p0
.line 44
:goto_6
const/16 v1, 0x8
.line 45
:goto_8
if-ge v1, v0, :cond_10
.line 46
add-int/2addr v1, v1
goto :goto_8
.line 43
:cond_c
shr-int/lit8 v0, p0, 0x2
add-int/2addr v0, p0
goto :goto_6
.line 48
:cond_10
return v1
.end method
.method public static from(Ljava/util/HashMap;)Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/HashMap",
"<",
"Lcom/fasterxml/jackson/databind/util/TypeKey;",
"Lcom/fasterxml/jackson/databind/JsonSerializer",
"<",
"Ljava/lang/Object;",
">;>;)",
"Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;"
}
.end annotation
.prologue
.line 55
new-instance v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;
invoke-direct {v0, p0}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;-><init>(Ljava/util/Map;)V
return-object v0
.end method
# virtual methods
.method public final typedValueSerializer(Lcom/fasterxml/jackson/databind/JavaType;)Lcom/fasterxml/jackson/databind/JsonSerializer;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/fasterxml/jackson/databind/JavaType;",
")",
"Lcom/fasterxml/jackson/databind/JsonSerializer",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 68
iget-object v0, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_buckets:[Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
invoke-static {p1}, Lcom/fasterxml/jackson/databind/util/TypeKey;->typedHash(Lcom/fasterxml/jackson/databind/JavaType;)I
move-result v2
iget v3, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_mask:I
and-int/2addr v2, v3
aget-object v0, v0, v2
.line 69
if-nez v0, :cond_10
move-object v0, v1
.line 80
:goto_f
return-object v0
.line 72
:cond_10
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesTyped(Lcom/fasterxml/jackson/databind/JavaType;)Z
move-result v2
if-eqz v2, :cond_19
.line 73
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
.line 75
:cond_19
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->next:Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
if-eqz v0, :cond_26
.line 76
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesTyped(Lcom/fasterxml/jackson/databind/JavaType;)Z
move-result v2
if-eqz v2, :cond_19
.line 77
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
:cond_26
move-object v0, v1
.line 80
goto :goto_f
.end method
.method public final typedValueSerializer(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/JsonSerializer;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)",
"Lcom/fasterxml/jackson/databind/JsonSerializer",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 85
iget-object v0, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_buckets:[Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
invoke-static {p1}, Lcom/fasterxml/jackson/databind/util/TypeKey;->typedHash(Ljava/lang/Class;)I
move-result v2
iget v3, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_mask:I
and-int/2addr v2, v3
aget-object v0, v0, v2
.line 86
if-nez v0, :cond_10
move-object v0, v1
.line 97
:goto_f
return-object v0
.line 89
:cond_10
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesTyped(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_19
.line 90
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
.line 92
:cond_19
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->next:Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
if-eqz v0, :cond_26
.line 93
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesTyped(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_19
.line 94
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
:cond_26
move-object v0, v1
.line 97
goto :goto_f
.end method
.method public final untypedValueSerializer(Lcom/fasterxml/jackson/databind/JavaType;)Lcom/fasterxml/jackson/databind/JsonSerializer;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/fasterxml/jackson/databind/JavaType;",
")",
"Lcom/fasterxml/jackson/databind/JsonSerializer",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 102
iget-object v0, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_buckets:[Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
invoke-static {p1}, Lcom/fasterxml/jackson/databind/util/TypeKey;->untypedHash(Lcom/fasterxml/jackson/databind/JavaType;)I
move-result v2
iget v3, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_mask:I
and-int/2addr v2, v3
aget-object v0, v0, v2
.line 103
if-nez v0, :cond_10
move-object v0, v1
.line 114
:goto_f
return-object v0
.line 106
:cond_10
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesUntyped(Lcom/fasterxml/jackson/databind/JavaType;)Z
move-result v2
if-eqz v2, :cond_19
.line 107
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
.line 109
:cond_19
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->next:Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
if-eqz v0, :cond_26
.line 110
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesUntyped(Lcom/fasterxml/jackson/databind/JavaType;)Z
move-result v2
if-eqz v2, :cond_19
.line 111
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
:cond_26
move-object v0, v1
.line 114
goto :goto_f
.end method
.method public final untypedValueSerializer(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/JsonSerializer;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)",
"Lcom/fasterxml/jackson/databind/JsonSerializer",
"<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 119
iget-object v0, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_buckets:[Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
invoke-static {p1}, Lcom/fasterxml/jackson/databind/util/TypeKey;->untypedHash(Ljava/lang/Class;)I
move-result v2
iget v3, p0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap;->_mask:I
and-int/2addr v2, v3
aget-object v0, v0, v2
.line 120
if-nez v0, :cond_10
move-object v0, v1
.line 131
:goto_f
return-object v0
.line 123
:cond_10
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesUntyped(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_19
.line 124
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
.line 126
:cond_19
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->next:Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;
if-eqz v0, :cond_26
.line 127
invoke-virtual {v0, p1}, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->matchesUntyped(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_19
.line 128
iget-object v0, v0, Lcom/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap$Bucket;->value:Lcom/fasterxml/jackson/databind/JsonSerializer;
goto :goto_f
:cond_26
move-object v0, v1
.line 131
goto :goto_f
.end method