JexlEngine.smali

.class public abstract Lorg/apache/commons/jexl3/JexlEngine;
.super Ljava/lang/Object;
.source "SourceFile"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/apache/commons/jexl3/JexlEngine$Options;
    }
.end annotation


# static fields
.field public static final CONTEXT:Ljava/lang/ThreadLocal;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/lang/ThreadLocal<",
            "Lorg/apache/commons/jexl3/JexlContext$ThreadLocal;",
            ">;"
        }
    .end annotation
.end field

.field public static final EMPTY_CONTEXT:Lorg/apache/commons/jexl3/JexlContext;

.field public static final EMPTY_NS:Lorg/apache/commons/jexl3/JexlContext$NamespaceResolver;

.field private static final JXLT_CACHE_SIZE:I = 0x100

.field public static final TRY_FAILED:Ljava/lang/Object;


# direct methods
.method public static constructor <clinit>()V
    .registers 1

    .line 1
    new-instance v0, Lorg/apache/commons/jexl3/JexlEngine$1;

    invoke-direct {v0}, Lorg/apache/commons/jexl3/JexlEngine$1;-><init>()V

    sput-object v0, Lorg/apache/commons/jexl3/JexlEngine;->TRY_FAILED:Ljava/lang/Object;

    .line 2
    new-instance v0, Lorg/apache/commons/jexl3/JexlEngine$2;

    invoke-direct {v0}, Lorg/apache/commons/jexl3/JexlEngine$2;-><init>()V

    sput-object v0, Lorg/apache/commons/jexl3/JexlEngine;->CONTEXT:Ljava/lang/ThreadLocal;

    .line 3
    new-instance v0, Lorg/apache/commons/jexl3/JexlEngine$3;

    invoke-direct {v0}, Lorg/apache/commons/jexl3/JexlEngine$3;-><init>()V

    sput-object v0, Lorg/apache/commons/jexl3/JexlEngine;->EMPTY_CONTEXT:Lorg/apache/commons/jexl3/JexlContext;

    .line 4
    new-instance v0, Lorg/apache/commons/jexl3/JexlEngine$4;

    invoke-direct {v0}, Lorg/apache/commons/jexl3/JexlEngine$4;-><init>()V

    sput-object v0, Lorg/apache/commons/jexl3/JexlEngine;->EMPTY_NS:Lorg/apache/commons/jexl3/JexlContext$NamespaceResolver;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static getThreadContext()Lorg/apache/commons/jexl3/JexlContext$ThreadLocal;
    .registers 1

    sget-object v0, Lorg/apache/commons/jexl3/JexlEngine;->CONTEXT:Ljava/lang/ThreadLocal;

    invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lorg/apache/commons/jexl3/JexlContext$ThreadLocal;

    return-object v0
.end method

.method public static setThreadContext(Lorg/apache/commons/jexl3/JexlContext$ThreadLocal;)V
    .registers 2

    sget-object v0, Lorg/apache/commons/jexl3/JexlEngine;->CONTEXT:Ljava/lang/ThreadLocal;

    invoke-virtual {v0, p0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V

    return-void
.end method

.method public static toString(Ljava/io/BufferedReader;)Ljava/lang/String;
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 1
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    .line 2
    :goto_5
    invoke-virtual {p0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;

    move-result-object v1

    if-eqz v1, :cond_14

    .line 3
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const/16 v1, 0xa

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto :goto_5

    .line 4
    :cond_14
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p0

    return-object p0
.end method


# virtual methods
.method public abstract clearCache()V
.end method

.method public final createExpression(Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlExpression;
    .registers 3

    const/4 v0, 0x0

    invoke-virtual {p0, v0, p1}, Lorg/apache/commons/jexl3/JexlEngine;->createExpression(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlExpression;

    move-result-object p1

    return-object p1
.end method

.method public abstract createExpression(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlExpression;
.end method

.method public createInfo()Lorg/apache/commons/jexl3/JexlInfo;
    .registers 8

    .line 2
    new-instance v0, Ljava/lang/Throwable;

    invoke-direct {v0}, Ljava/lang/Throwable;-><init>()V

    invoke-virtual {v0}, Ljava/lang/Throwable;->getStackTrace()[Ljava/lang/StackTraceElement;

    move-result-object v0

    .line 3
    invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v1

    const/4 v2, 0x1

    const/4 v3, 0x0

    move-object v4, v3

    .line 4
    :goto_14
    array-length v5, v0

    if-ge v2, v5, :cond_37

    .line 5
    aget-object v4, v0, v2

    .line 6
    invoke-virtual {v4}, Ljava/lang/StackTraceElement;->getClassName()Ljava/lang/String;

    move-result-object v5

    .line 7
    invoke-virtual {v5, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-nez v6, :cond_34

    const-string v1, "org.apache.commons.jexl3.internal."

    .line 8
    invoke-virtual {v5, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v1

    if-nez v1, :cond_33

    const-string v1, "org.apache.commons.jexl3.J"

    invoke-virtual {v5, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_37

    :cond_33
    move-object v1, v5

    :cond_34
    add-int/lit8 v2, v2, 0x1

    goto :goto_14

    :cond_37
    if-eqz v4, :cond_5e

    .line 9
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4}, Ljava/lang/StackTraceElement;->getClassName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v1, "."

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StackTraceElement;->getMethodName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v4}, Ljava/lang/StackTraceElement;->getLineNumber()I

    move-result v1

    const/4 v2, 0x0

    invoke-virtual {p0, v0, v1, v2}, Lorg/apache/commons/jexl3/JexlEngine;->createInfo(Ljava/lang/String;II)Lorg/apache/commons/jexl3/JexlInfo;

    move-result-object v3

    :cond_5e
    return-object v3
.end method

.method public createInfo(Ljava/lang/String;II)Lorg/apache/commons/jexl3/JexlInfo;
    .registers 5

    .line 1
    new-instance v0, Lorg/apache/commons/jexl3/JexlInfo;

    invoke-direct {v0, p1, p2, p3}, Lorg/apache/commons/jexl3/JexlInfo;-><init>(Ljava/lang/String;II)V

    return-object v0
.end method

.method public createJxltEngine()Lorg/apache/commons/jexl3/JxltEngine;
    .registers 2

    const/4 v0, 0x1

    .line 1
    invoke-virtual {p0, v0}, Lorg/apache/commons/jexl3/JexlEngine;->createJxltEngine(Z)Lorg/apache/commons/jexl3/JxltEngine;

    move-result-object v0

    return-object v0
.end method

.method public createJxltEngine(Z)Lorg/apache/commons/jexl3/JxltEngine;
    .registers 5

    const/16 v0, 0x100

    const/16 v1, 0x24

    const/16 v2, 0x23

    .line 2
    invoke-virtual {p0, p1, v0, v1, v2}, Lorg/apache/commons/jexl3/JexlEngine;->createJxltEngine(ZICC)Lorg/apache/commons/jexl3/JxltEngine;

    move-result-object p1

    return-object p1
.end method

.method public abstract createJxltEngine(ZICC)Lorg/apache/commons/jexl3/JxltEngine;
.end method

.method public final createScript(Ljava/io/File;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 3

    .line 3
    invoke-virtual {p0, p1}, Lorg/apache/commons/jexl3/JexlEngine;->readSource(Ljava/io/File;)Ljava/lang/String;

    move-result-object p1

    const/4 v0, 0x0

    invoke-virtual {p0, v0, p1, v0}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public final varargs createScript(Ljava/io/File;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 4

    .line 4
    invoke-virtual {p0, p1}, Lorg/apache/commons/jexl3/JexlEngine;->readSource(Ljava/io/File;)Ljava/lang/String;

    move-result-object p1

    const/4 v0, 0x0

    invoke-virtual {p0, v0, p1, p2}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public final createScript(Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 3

    const/4 v0, 0x0

    .line 1
    invoke-virtual {p0, v0, p1, v0}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public final varargs createScript(Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 4

    const/4 v0, 0x0

    .line 2
    invoke-virtual {p0, v0, p1, p2}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public final createScript(Ljava/net/URL;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 3

    .line 6
    invoke-virtual {p0, p1}, Lorg/apache/commons/jexl3/JexlEngine;->readSource(Ljava/net/URL;)Ljava/lang/String;

    move-result-object p1

    const/4 v0, 0x0

    invoke-virtual {p0, v0, p1, v0}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public final createScript(Ljava/net/URL;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 4

    .line 7
    invoke-virtual {p0, p1}, Lorg/apache/commons/jexl3/JexlEngine;->readSource(Ljava/net/URL;)Ljava/lang/String;

    move-result-object p1

    const/4 v0, 0x0

    invoke-virtual {p0, v0, p1, p2}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public final createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/io/File;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 4

    .line 5
    invoke-virtual {p0, p2}, Lorg/apache/commons/jexl3/JexlEngine;->readSource(Ljava/io/File;)Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p0, p1, p2, p3}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public abstract createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
.end method

.method public final createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/net/URL;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
    .registers 4

    .line 8
    invoke-virtual {p0, p2}, Lorg/apache/commons/jexl3/JexlEngine;->readSource(Ljava/net/URL;)Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p0, p1, p2, p3}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;

    move-result-object p1

    return-object p1
.end method

.method public abstract getArithmetic()Lorg/apache/commons/jexl3/JexlArithmetic;
.end method

.method public abstract getCharset()Ljava/nio/charset/Charset;
.end method

.method public abstract getProperty(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
.end method

.method public abstract getProperty(Lorg/apache/commons/jexl3/JexlContext;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
.end method

.method public abstract getUberspect()Lorg/apache/commons/jexl3/introspection/JexlUberspect;
.end method

.method public varargs abstract invokeMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
.end method

.method public abstract isCancellable()Z
.end method

.method public abstract isDebug()Z
.end method

.method public abstract isSilent()Z
.end method

.method public abstract isStrict()Z
.end method

.method public varargs abstract newInstance(Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "+TT;>;[",
            "Ljava/lang/Object;",
            ")TT;"
        }
    .end annotation
.end method

.method public varargs abstract newInstance(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
.end method

.method public readSource(Ljava/io/File;)Ljava/lang/String;
    .registers 8

    const-string v0, "source file is null"

    .line 1
    invoke-static {p1, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;

    const/4 v0, 0x0

    .line 2
    :try_start_6
    new-instance v1, Ljava/io/BufferedReader;

    new-instance v2, Ljava/io/InputStreamReader;

    new-instance v3, Ljava/io/FileInputStream;

    invoke-direct {v3, p1}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V

    invoke-virtual {p0}, Lorg/apache/commons/jexl3/JexlEngine;->getCharset()Ljava/nio/charset/Charset;

    move-result-object v4

    invoke-direct {v2, v3, v4}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V

    invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
    :try_end_19
    .catch Ljava/io/IOException; {:try_start_6 .. :try_end_19} :catch_25
    .catchall {:try_start_6 .. :try_end_19} :catchall_23

    .line 3
    :try_start_19
    invoke-static {v1}, Lorg/apache/commons/jexl3/JexlEngine;->toString(Ljava/io/BufferedReader;)Ljava/lang/String;

    move-result-object p1
    :try_end_1d
    .catch Ljava/io/IOException; {:try_start_19 .. :try_end_1d} :catch_21
    .catchall {:try_start_19 .. :try_end_1d} :catchall_3a

    .line 4
    :try_start_1d
    invoke-virtual {v1}, Ljava/io/BufferedReader;->close()V
    :try_end_20
    .catch Ljava/io/IOException; {:try_start_1d .. :try_end_20} :catch_20

    :catch_20
    return-object p1

    :catch_21
    move-exception v0

    goto :goto_29

    :catchall_23
    move-exception p1

    goto :goto_3c

    :catch_25
    move-exception v1

    move-object v5, v1

    move-object v1, v0

    move-object v0, v5

    .line 5
    :goto_29
    :try_start_29
    new-instance v2, Lorg/apache/commons/jexl3/JexlException;

    invoke-virtual {p1}, Ljava/io/File;->toString()Ljava/lang/String;

    move-result-object p1

    const/4 v3, 0x1

    invoke-virtual {p0, p1, v3, v3}, Lorg/apache/commons/jexl3/JexlEngine;->createInfo(Ljava/lang/String;II)Lorg/apache/commons/jexl3/JexlInfo;

    move-result-object p1

    const-string v3, "could not read source File"

    invoke-direct {v2, p1, v3, v0}, Lorg/apache/commons/jexl3/JexlException;-><init>(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v2
    :try_end_3a
    .catchall {:try_start_29 .. :try_end_3a} :catchall_3a

    :catchall_3a
    move-exception p1

    move-object v0, v1

    :goto_3c
    if-eqz v0, :cond_41

    .line 6
    :try_start_3e
    invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
    :try_end_41
    .catch Ljava/io/IOException; {:try_start_3e .. :try_end_41} :catch_41

    .line 7
    :catch_41
    :cond_41
    throw p1
.end method

.method public readSource(Ljava/net/URL;)Ljava/lang/String;
    .registers 8

    const-string v0, "source URL is null"

    .line 8
    invoke-static {p1, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;

    const/4 v0, 0x0

    .line 9
    :try_start_6
    new-instance v1, Ljava/io/BufferedReader;

    new-instance v2, Ljava/io/InputStreamReader;

    invoke-static {p1}, Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;->openStream(Ljava/net/URL;)Ljava/io/InputStream;

    move-result-object v3

    invoke-virtual {p0}, Lorg/apache/commons/jexl3/JexlEngine;->getCharset()Ljava/nio/charset/Charset;

    move-result-object v4

    invoke-direct {v2, v3, v4}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V

    invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
    :try_end_18
    .catch Ljava/io/IOException; {:try_start_6 .. :try_end_18} :catch_24
    .catchall {:try_start_6 .. :try_end_18} :catchall_22

    .line 10
    :try_start_18
    invoke-static {v1}, Lorg/apache/commons/jexl3/JexlEngine;->toString(Ljava/io/BufferedReader;)Ljava/lang/String;

    move-result-object p1
    :try_end_1c
    .catch Ljava/io/IOException; {:try_start_18 .. :try_end_1c} :catch_20
    .catchall {:try_start_18 .. :try_end_1c} :catchall_39

    .line 11
    :try_start_1c
    invoke-virtual {v1}, Ljava/io/BufferedReader;->close()V
    :try_end_1f
    .catch Ljava/io/IOException; {:try_start_1c .. :try_end_1f} :catch_1f

    :catch_1f
    return-object p1

    :catch_20
    move-exception v0

    goto :goto_28

    :catchall_22
    move-exception p1

    goto :goto_3b

    :catch_24
    move-exception v1

    move-object v5, v1

    move-object v1, v0

    move-object v0, v5

    .line 12
    :goto_28
    :try_start_28
    new-instance v2, Lorg/apache/commons/jexl3/JexlException;

    invoke-virtual {p1}, Ljava/net/URL;->toString()Ljava/lang/String;

    move-result-object p1

    const/4 v3, 0x1

    invoke-virtual {p0, p1, v3, v3}, Lorg/apache/commons/jexl3/JexlEngine;->createInfo(Ljava/lang/String;II)Lorg/apache/commons/jexl3/JexlInfo;

    move-result-object p1

    const-string v3, "could not read source URL"

    invoke-direct {v2, p1, v3, v0}, Lorg/apache/commons/jexl3/JexlException;-><init>(Lorg/apache/commons/jexl3/JexlInfo;Ljava/lang/String;Ljava/lang/Throwable;)V

    throw v2
    :try_end_39
    .catchall {:try_start_28 .. :try_end_39} :catchall_39

    :catchall_39
    move-exception p1

    move-object v0, v1

    :goto_3b
    if-eqz v0, :cond_40

    .line 13
    :try_start_3d
    invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
    :try_end_40
    .catch Ljava/io/IOException; {:try_start_3d .. :try_end_40} :catch_40

    .line 14
    :catch_40
    :cond_40
    throw p1
.end method

.method public abstract setClassLoader(Ljava/lang/ClassLoader;)V
.end method

.method public abstract setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
.end method

.method public abstract setProperty(Lorg/apache/commons/jexl3/JexlContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
.end method