NumberSerializer.smali
.class public Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;
.super Lcom/fasterxml/jackson/databind/ser/std/StdScalarSerializer;
.source "NumberSerializer.java"
# annotations
.annotation runtime Lcom/fasterxml/jackson/databind/annotation/JacksonStdImpl;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/fasterxml/jackson/databind/ser/std/StdScalarSerializer",
"<",
"Ljava/lang/Number;",
">;"
}
.end annotation
# static fields
.field public static final instance:Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;
# instance fields
.field protected final _isInt:Z
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
.line 27
new-instance v0, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;
const-class v1, Ljava/lang/Number;
invoke-direct {v0, v1}, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;-><init>(Ljava/lang/Class;)V
sput-object v0, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->instance:Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;
return-void
.end method
.method public constructor <init>(Ljava/lang/Class;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<+",
"Ljava/lang/Number;",
">;)V"
}
.end annotation
.prologue
const/4 v0, 0x0
.line 35
invoke-direct {p0, p1, v0}, Lcom/fasterxml/jackson/databind/ser/std/StdScalarSerializer;-><init>(Ljava/lang/Class;Z)V
.line 37
const-class v1, Ljava/math/BigInteger;
if-ne p1, v1, :cond_9
const/4 v0, 0x1
:cond_9
iput-boolean v0, p0, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->_isInt:Z
.line 38
return-void
.end method
# virtual methods
.method public acceptJsonFormatVisitor(Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitorWrapper;Lcom/fasterxml/jackson/databind/JavaType;)V
.registers 5
.prologue
.line 73
iget-boolean v0, p0, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->_isInt:Z
if-eqz v0, :cond_a
.line 74
sget-object v0, Lcom/fasterxml/jackson/core/JsonParser$NumberType;->BIG_INTEGER:Lcom/fasterxml/jackson/core/JsonParser$NumberType;
invoke-virtual {p0, p1, p2, v0}, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->visitIntFormat(Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitorWrapper;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/core/JsonParser$NumberType;)V
.line 84
:goto_9
return-void
.line 76
:cond_a
invoke-virtual {p0}, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->handledType()Ljava/lang/Class;
move-result-object v0
.line 77
const-class v1, Ljava/math/BigDecimal;
if-ne v0, v1, :cond_18
.line 78
sget-object v0, Lcom/fasterxml/jackson/core/JsonParser$NumberType;->BIG_DECIMAL:Lcom/fasterxml/jackson/core/JsonParser$NumberType;
invoke-virtual {p0, p1, p2, v0}, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->visitFloatFormat(Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitorWrapper;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/core/JsonParser$NumberType;)V
goto :goto_9
.line 81
:cond_18
invoke-interface {p1, p2}, Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitorWrapper;->expectNumberFormat(Lcom/fasterxml/jackson/databind/JavaType;)Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonNumberFormatVisitor;
goto :goto_9
.end method
.method public getSchema(Lcom/fasterxml/jackson/databind/SerializerProvider;Ljava/lang/reflect/Type;)Lcom/fasterxml/jackson/databind/JsonNode;
.registers 5
.prologue
.line 67
iget-boolean v0, p0, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->_isInt:Z
if-eqz v0, :cond_c
const-string v0, "integer"
:goto_6
const/4 v1, 0x1
invoke-virtual {p0, v0, v1}, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->createSchemaNode(Ljava/lang/String;Z)Lcom/fasterxml/jackson/databind/node/ObjectNode;
move-result-object v0
return-object v0
:cond_c
const-string v0, "number"
goto :goto_6
.end method
.method public serialize(Ljava/lang/Number;Lcom/fasterxml/jackson/core/JsonGenerator;Lcom/fasterxml/jackson/databind/SerializerProvider;)V
.registers 6
.prologue
.line 44
instance-of v0, p1, Ljava/math/BigDecimal;
if-eqz v0, :cond_a
.line 45
check-cast p1, Ljava/math/BigDecimal;
invoke-virtual {p2, p1}, Lcom/fasterxml/jackson/core/JsonGenerator;->writeNumber(Ljava/math/BigDecimal;)V
.line 63
:goto_9
return-void
.line 46
:cond_a
instance-of v0, p1, Ljava/math/BigInteger;
if-eqz v0, :cond_14
.line 47
check-cast p1, Ljava/math/BigInteger;
invoke-virtual {p2, p1}, Lcom/fasterxml/jackson/core/JsonGenerator;->writeNumber(Ljava/math/BigInteger;)V
goto :goto_9
.line 51
:cond_14
instance-of v0, p1, Ljava/lang/Long;
if-eqz v0, :cond_20
.line 52
invoke-virtual {p1}, Ljava/lang/Number;->longValue()J
move-result-wide v0
invoke-virtual {p2, v0, v1}, Lcom/fasterxml/jackson/core/JsonGenerator;->writeNumber(J)V
goto :goto_9
.line 53
:cond_20
instance-of v0, p1, Ljava/lang/Double;
if-eqz v0, :cond_2c
.line 54
invoke-virtual {p1}, Ljava/lang/Number;->doubleValue()D
move-result-wide v0
invoke-virtual {p2, v0, v1}, Lcom/fasterxml/jackson/core/JsonGenerator;->writeNumber(D)V
goto :goto_9
.line 55
:cond_2c
instance-of v0, p1, Ljava/lang/Float;
if-eqz v0, :cond_38
.line 56
invoke-virtual {p1}, Ljava/lang/Number;->floatValue()F
move-result v0
invoke-virtual {p2, v0}, Lcom/fasterxml/jackson/core/JsonGenerator;->writeNumber(F)V
goto :goto_9
.line 57
:cond_38
instance-of v0, p1, Ljava/lang/Integer;
if-nez v0, :cond_44
instance-of v0, p1, Ljava/lang/Byte;
if-nez v0, :cond_44
instance-of v0, p1, Ljava/lang/Short;
if-eqz v0, :cond_4c
.line 58
:cond_44
invoke-virtual {p1}, Ljava/lang/Number;->intValue()I
move-result v0
invoke-virtual {p2, v0}, Lcom/fasterxml/jackson/core/JsonGenerator;->writeNumber(I)V
goto :goto_9
.line 61
:cond_4c
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Lcom/fasterxml/jackson/core/JsonGenerator;->writeNumber(Ljava/lang/String;)V
goto :goto_9
.end method
.method public bridge synthetic serialize(Ljava/lang/Object;Lcom/fasterxml/jackson/core/JsonGenerator;Lcom/fasterxml/jackson/databind/SerializerProvider;)V
.registers 4
.prologue
.line 19
check-cast p1, Ljava/lang/Number;
invoke-virtual {p0, p1, p2, p3}, Lcom/fasterxml/jackson/databind/ser/std/NumberSerializer;->serialize(Ljava/lang/Number;Lcom/fasterxml/jackson/core/JsonGenerator;Lcom/fasterxml/jackson/databind/SerializerProvider;)V
return-void
.end method