zzks.smali
.class public final Lcom/google/android/gms/internal/firebase_database/zzks;
.super Ljava/lang/Object;
# static fields
.field private static final zzut:Ljava/util/regex/Pattern;
.field private static final zzuu:Ljava/util/regex/Pattern;
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string v0, "[\\[\\]\\.#$]"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/gms/internal/firebase_database/zzks;->zzut:Ljava/util/regex/Pattern;
const-string v0, "[\\[\\]\\.#\\$\\/\\u0000-\\u001F\\u007F]"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/gms/internal/firebase_database/zzks;->zzuu:Ljava/util/regex/Pattern;
return-void
.end method
.method public static zzab(Ljava/lang/String;)V
.registers 4
sget-object v0, Lcom/google/android/gms/internal/firebase_database/zzks;->zzut:Ljava/util/regex/Pattern;
invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
invoke-virtual {v0}, Ljava/util/regex/Matcher;->find()Z
move-result v0
if-nez v0, :cond_38
const/4 v0, 0x1
:goto_d
if-nez v0, :cond_3a
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, 0x65
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2, v1}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v1, "Invalid Firebase Database path: "
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ". Firebase Database paths must not contain \'.\', \'#\', \'$\', \'[\', or \']\'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_38
const/4 v0, 0x0
goto :goto_d
:cond_3a
return-void
.end method
.method public static zzac(Ljava/lang/String;)V
.registers 2
const-string v0, ".info"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_11
const/4 v0, 0x5
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/google/android/gms/internal/firebase_database/zzks;->zzab(Ljava/lang/String;)V
:goto_10
return-void
:cond_11
const-string v0, "/.info"
invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_22
const/4 v0, 0x6
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/google/android/gms/internal/firebase_database/zzks;->zzab(Ljava/lang/String;)V
goto :goto_10
:cond_22
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzks;->zzab(Ljava/lang/String;)V
goto :goto_10
.end method
.method public static zzad(Ljava/lang/String;)V
.registers 4
if-eqz p0, :cond_44
const-string v0, ".info"
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_16
sget-object v0, Lcom/google/android/gms/internal/firebase_database/zzks;->zzuu:Ljava/util/regex/Pattern;
invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
invoke-virtual {v0}, Ljava/util/regex/Matcher;->find()Z
move-result v0
if-nez v0, :cond_42
:cond_16
const/4 v0, 0x1
:goto_17
if-nez v0, :cond_44
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, 0x44
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2, v1}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v1, "Invalid key: "
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ". Keys must not contain \'/\', \'.\', \'#\', \'$\', \'[\', or \']\'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_42
const/4 v0, 0x0
goto :goto_17
:cond_44
return-void
.end method
.method public static zzan(Lcom/google/android/gms/internal/firebase_database/zzch;)V
.registers 5
invoke-virtual {p0}, Lcom/google/android/gms/internal/firebase_database/zzch;->zzbw()Lcom/google/android/gms/internal/firebase_database/zzid;
move-result-object v0
if-eqz v0, :cond_12
invoke-virtual {v0}, Lcom/google/android/gms/internal/firebase_database/zzid;->zzfg()Ljava/lang/String;
move-result-object v0
const-string v1, "."
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_2f
:cond_12
const/4 v0, 0x1
:goto_13
if-nez v0, :cond_37
new-instance v1, Lcom/google/firebase/database/DatabaseException;
const-string v2, "Invalid write location: "
invoke-virtual {p0}, Lcom/google/android/gms/internal/firebase_database/zzch;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v3
if-eqz v3, :cond_31
invoke-virtual {v2, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
:goto_2b
invoke-direct {v1, v0}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v1
:cond_2f
const/4 v0, 0x0
goto :goto_13
:cond_31
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v2}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
goto :goto_2b
:cond_37
return-void
.end method
.method public static zzb(Lcom/google/android/gms/internal/firebase_database/zzch;Ljava/util/Map;)Ljava/util/Map;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/gms/internal/firebase_database/zzch;",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;)",
"Ljava/util/Map",
"<",
"Lcom/google/android/gms/internal/firebase_database/zzch;",
"Lcom/google/android/gms/internal/firebase_database/zzja;",
">;"
}
.end annotation
new-instance v3, Ljava/util/TreeMap;
invoke-direct {v3}, Ljava/util/TreeMap;-><init>()V
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 v2
:goto_d
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_a7
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
new-instance v4, Lcom/google/android/gms/internal/firebase_database/zzch;
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-direct {v4, v1}, Lcom/google/android/gms/internal/firebase_database/zzch;-><init>(Ljava/lang/String;)V
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
invoke-virtual {p0, v4}, Lcom/google/android/gms/internal/firebase_database/zzch;->zzh(Lcom/google/android/gms/internal/firebase_database/zzch;)Lcom/google/android/gms/internal/firebase_database/zzch;
move-result-object v0
invoke-static {v0, v1}, Lcom/google/android/gms/internal/firebase_database/zzfb;->zza(Lcom/google/android/gms/internal/firebase_database/zzch;Ljava/lang/Object;)V
invoke-virtual {v4}, Lcom/google/android/gms/internal/firebase_database/zzch;->isEmpty()Z
move-result v0
if-nez v0, :cond_87
invoke-virtual {v4}, Lcom/google/android/gms/internal/firebase_database/zzch;->zzbz()Lcom/google/android/gms/internal/firebase_database/zzid;
move-result-object v0
invoke-virtual {v0}, Lcom/google/android/gms/internal/firebase_database/zzid;->zzfg()Ljava/lang/String;
move-result-object v0
:goto_3d
const-string v5, ".sv"
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_4d
const-string v5, ".value"
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_8a
:cond_4d
new-instance v1, Lcom/google/firebase/database/DatabaseException;
invoke-static {v4}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x28
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
add-int/2addr v3, v4
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Path \'"
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "\' contains disallowed child name: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v1
:cond_87
const-string v0, ""
goto :goto_3d
:cond_8a
const-string v5, ".priority"
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_9e
invoke-static {v4, v1}, Lcom/google/android/gms/internal/firebase_database/zzjg;->zzc(Lcom/google/android/gms/internal/firebase_database/zzch;Ljava/lang/Object;)Lcom/google/android/gms/internal/firebase_database/zzja;
move-result-object v0
:goto_96
invoke-static {v1}, Lcom/google/android/gms/internal/firebase_database/zzks;->zzg(Ljava/lang/Object;)V
invoke-interface {v3, v4, v0}, Ljava/util/SortedMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto/16 :goto_d
:cond_9e
invoke-static {}, Lcom/google/android/gms/internal/firebase_database/zzir;->zzfv()Lcom/google/android/gms/internal/firebase_database/zzir;
move-result-object v0
invoke-static {v1, v0}, Lcom/google/android/gms/internal/firebase_database/zzjd;->zza(Ljava/lang/Object;Lcom/google/android/gms/internal/firebase_database/zzja;)Lcom/google/android/gms/internal/firebase_database/zzja;
move-result-object v0
goto :goto_96
:cond_a7
const/4 v0, 0x0
invoke-interface {v3}, Ljava/util/SortedMap;->keySet()Ljava/util/Set;
move-result-object v1
invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v4
move-object v1, v0
:goto_b1
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_119
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/gms/internal/firebase_database/zzch;
if-eqz v1, :cond_c5
invoke-virtual {v1, v0}, Lcom/google/android/gms/internal/firebase_database/zzch;->zzj(Lcom/google/android/gms/internal/firebase_database/zzch;)I
move-result v2
if-gez v2, :cond_115
:cond_c5
const/4 v2, 0x1
:goto_c6
invoke-static {v2}, Lcom/google/android/gms/internal/firebase_database/zzkq;->zzf(Z)V
if-eqz v1, :cond_117
invoke-virtual {v1, v0}, Lcom/google/android/gms/internal/firebase_database/zzch;->zzi(Lcom/google/android/gms/internal/firebase_database/zzch;)Z
move-result v2
if-eqz v2, :cond_117
new-instance v2, Lcom/google/firebase/database/DatabaseException;
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x2a
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
add-int/2addr v3, v4
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Path \'"
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v3, "\' is an ancestor of \'"
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "\' in an update."
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v2
:cond_115
const/4 v2, 0x0
goto :goto_c6
:cond_117
move-object v1, v0
goto :goto_b1
:cond_119
return-object v3
.end method
.method public static zzg(Ljava/lang/Object;)V
.registers 5
instance-of v0, p0, Ljava/util/Map;
if-eqz v0, :cond_8b
check-cast p0, Ljava/util/Map;
const-string v0, ".sv"
invoke-interface {p0, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_f
:cond_e
return-void
:cond_f
invoke-interface {p0}, 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_17
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_e
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
if-eqz v1, :cond_81
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_81
const-string v2, ".value"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_55
const-string v2, ".priority"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_55
const-string v2, "."
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_81
sget-object v2, Lcom/google/android/gms/internal/firebase_database/zzks;->zzuu:Ljava/util/regex/Pattern;
invoke-virtual {v2, v1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v2
invoke-virtual {v2}, Ljava/util/regex/Matcher;->find()Z
move-result v2
if-nez v2, :cond_81
:cond_55
const/4 v2, 0x1
:goto_56
if-nez v2, :cond_83
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x44
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Invalid key: "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ". Keys must not contain \'/\', \'.\', \'#\', \'$\', \'[\', or \']\'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_81
const/4 v2, 0x0
goto :goto_56
:cond_83
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lcom/google/android/gms/internal/firebase_database/zzks;->zzg(Ljava/lang/Object;)V
goto :goto_17
:cond_8b
instance-of v0, p0, Ljava/util/List;
if-eqz v0, :cond_a3
check-cast p0, Ljava/util/List;
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_95
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_e
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
invoke-static {v1}, Lcom/google/android/gms/internal/firebase_database/zzks;->zzg(Ljava/lang/Object;)V
goto :goto_95
:cond_a3
instance-of v0, p0, Ljava/lang/Double;
if-nez v0, :cond_ab
instance-of v0, p0, Ljava/lang/Float;
if-eqz v0, :cond_e
:cond_ab
check-cast p0, Ljava/lang/Double;
invoke-virtual {p0}, Ljava/lang/Double;->doubleValue()D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->isInfinite(D)Z
move-result v2
if-nez v2, :cond_bd
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
move-result v0
if-eqz v0, :cond_e
:cond_bd
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Invalid value: Value cannot be NaN, Inf or -Inf."
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
.end method