2022-06-10 21:38:30 +09:00

112 lines
2.8 KiB
Smali

.class public final Lcom/amplifyframework/datastore/appsync/ModelConverter;
.super Ljava/lang/Object;
.source "ModelConverter.java"
# direct methods
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static fromMap(Ljava/util/Map;Ljava/lang/Class;)Lcom/amplifyframework/core/model/Model;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Lcom/amplifyframework/core/model/Model;",
">(",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.line 1
invoke-static {}, Lcom/amplifyframework/util/GsonFactory;->instance()Lcom/google/gson/Gson;
move-result-object v0
.line 2
invoke-virtual {v0, p0}, Lcom/google/gson/Gson;->toJson(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
.line 3
invoke-virtual {v0, p0, p1}, Lcom/google/gson/Gson;->fromJson(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lcom/amplifyframework/core/model/Model;
return-object p0
.end method
.method public static toMap(Lcom/amplifyframework/core/model/Model;)Ljava/util/Map;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Lcom/amplifyframework/core/model/Model;",
">(TT;)",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
if-nez p0, :cond_0
.line 1
new-instance p0, Ljava/util/HashMap;
invoke-direct {p0}, Ljava/util/HashMap;-><init>()V
return-object p0
.line 2
:cond_0
instance-of v0, p0, Lcom/amplifyframework/datastore/appsync/SerializedModel;
if-eqz v0, :cond_1
.line 3
check-cast p0, Lcom/amplifyframework/datastore/appsync/SerializedModel;
invoke-virtual {p0}, Lcom/amplifyframework/datastore/appsync/SerializedModel;->getSerializedData()Ljava/util/Map;
move-result-object p0
return-object p0
.line 4
:cond_1
invoke-static {}, Lcom/amplifyframework/util/GsonFactory;->instance()Lcom/google/gson/Gson;
move-result-object v0
.line 5
invoke-virtual {v0, p0}, Lcom/google/gson/Gson;->toJsonTree(Ljava/lang/Object;)Lcom/google/gson/JsonElement;
move-result-object p0
.line 6
invoke-virtual {p0}, Lcom/google/gson/JsonElement;->getAsJsonObject()Lcom/google/gson/JsonObject;
move-result-object p0
invoke-static {p0}, Lcom/amplifyframework/util/GsonObjectConverter;->toMap(Lcom/google/gson/JsonObject;)Ljava/util/Map;
move-result-object p0
return-object p0
.end method