.class public final Lcom/amplifyframework/datastore/model/ModelHelper; .super Ljava/lang/Object; .source "ModelHelper.java" # static fields .field private static final LOGGER:Lcom/amplifyframework/logging/Logger; # direct methods .method public static constructor ()V .locals 2 .line 1 sget-object v0, Lcom/amplifyframework/core/Amplify;->Logging:Lcom/amplifyframework/logging/LoggingCategory; const-string v1, "amplify:aws-datastore" invoke-virtual {v0, v1}, Lcom/amplifyframework/logging/LoggingCategory;->forNamespace(Ljava/lang/String;)Lcom/amplifyframework/logging/Logger; move-result-object v0 sput-object v0, Lcom/amplifyframework/datastore/model/ModelHelper;->LOGGER:Lcom/amplifyframework/logging/Logger; return-void .end method .method private constructor ()V .locals 0 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static getValue(Lcom/amplifyframework/core/model/Model;Lcom/amplifyframework/core/model/ModelField;)Ljava/lang/Object; .locals 6 .annotation system Ldalvik/annotation/Signature; value = { "(TM;", "Lcom/amplifyframework/core/model/ModelField;", ")", "Ljava/lang/Object;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Lcom/amplifyframework/datastore/DataStoreException; } .end annotation .line 1 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 .line 2 invoke-virtual {p1}, Lcom/amplifyframework/core/model/ModelField;->getName()Ljava/lang/String; move-result-object p1 const-string v1, "get" .line 3 invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const/4 v2, 0x0 invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C move-result v3 invoke-static {v3}, Ljava/lang/Character;->toUpperCase(C)C move-result v3 invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; const/4 v3, 0x1 invoke-virtual {p1, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v4 invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 :try_start_0 new-array v4, v2, [Ljava/lang/Class; .line 4 invoke-virtual {v0, v1, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v4 new-array v5, v2, [Ljava/lang/Object; .line 5 invoke-virtual {v4, p0, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-object p0 .line 6 :catch_0 sget-object v4, Lcom/amplifyframework/datastore/model/ModelHelper;->LOGGER:Lcom/amplifyframework/logging/Logger; const/4 v5, 0x2 new-array v5, v5, [Ljava/lang/Object; aput-object v1, v5, v2 .line 7 invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v1 aput-object v1, v5, v3 const-string v1, "Could not find %s() on %s. Fallback to direct field access." .line 8 invoke-static {v1, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v1 invoke-interface {v4, v1}, Lcom/amplifyframework/logging/Logger;->verbose(Ljava/lang/String;)V .line 9 :try_start_1 invoke-virtual {v0, p1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field; move-result-object v1 .line 10 invoke-virtual {v1, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V .line 11 invoke-virtual {v1, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 return-object p0 :catch_1 move-exception p0 .line 12 new-instance v1, Lcom/amplifyframework/datastore/DataStoreException; const-string v2, "Error when reading the property " const-string v3, " from class " invoke-static {v2, p1, v3}, Landroidx/activity/result/g;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 .line 13 invoke-static {v0, p1}, Li/g;->a(Ljava/lang/Class;Ljava/lang/StringBuilder;)Ljava/lang/String; move-result-object p1 const-string v0, "There is a possibility that there is a bug if this error persists. Please take a look at \nhttps://github.com/aws-amplify/amplify-android/issues to see if there are any existing issues that \nmatch your scenario, and file an issue with the details of the bug if there isn\'t." invoke-direct {v1, p1, p0, v0}, Lcom/amplifyframework/datastore/DataStoreException;->(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/String;)V throw v1 .end method