JexlScriptEngine.smali
.class public Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;
.super Ljavax/script/AbstractScriptEngine;
.source "SourceFile"
# interfaces
.implements Ljavax/script/Compilable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlCompiledScript;,
Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlContextWrapper;,
Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$EngineSingletonHolder;,
Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$FactorySingletonHolder;,
Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlScriptObject;
}
.end annotation
# static fields
.field private static final CACHE_SIZE:I = 0x200
.field public static final CONTEXT_KEY:Ljava/lang/String; = "context"
.field public static final JEXL_OBJECT_KEY:Ljava/lang/String; = "JEXL"
.field private static final LOG:Lorg/apache/commons/logging/Log;
# instance fields
.field private final jexlEngine:Lorg/apache/commons/jexl3/JexlEngine;
.field private final jexlObject:Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlScriptObject;
.field private final parentFactory:Ljavax/script/ScriptEngineFactory;
# direct methods
.method public static constructor <clinit>()V
.registers 1
const-class v0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;
invoke-static {v0}, Lorg/apache/commons/logging/LogFactory;->getLog(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
move-result-object v0
sput-object v0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->LOG:Lorg/apache/commons/logging/Log;
return-void
.end method
.method public constructor <init>()V
.registers 2
.line 1
# getter for: Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$FactorySingletonHolder;->DEFAULT_FACTORY:Lorg/apache/commons/jexl3/scripting/JexlScriptEngineFactory;
invoke-static {}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$FactorySingletonHolder;->access$000()Lorg/apache/commons/jexl3/scripting/JexlScriptEngineFactory;
move-result-object v0
invoke-direct {p0, v0}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;-><init>(Ljavax/script/ScriptEngineFactory;)V
return-void
.end method
.method public constructor <init>(Ljavax/script/ScriptEngineFactory;)V
.registers 3
.line 2
invoke-direct {p0}, Ljavax/script/AbstractScriptEngine;-><init>()V
const-string v0, "ScriptEngineFactory must not be null"
.line 3
invoke-static {p1, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
.line 4
iput-object p1, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->parentFactory:Ljavax/script/ScriptEngineFactory;
.line 5
# getter for: Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$EngineSingletonHolder;->DEFAULT_ENGINE:Lorg/apache/commons/jexl3/JexlEngine;
invoke-static {}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$EngineSingletonHolder;->access$600()Lorg/apache/commons/jexl3/JexlEngine;
move-result-object p1
iput-object p1, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->jexlEngine:Lorg/apache/commons/jexl3/JexlEngine;
.line 6
new-instance p1, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlScriptObject;
invoke-direct {p1, p0}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlScriptObject;-><init>(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;)V
iput-object p1, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->jexlObject:Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlScriptObject;
return-void
.end method
.method public static synthetic access$100(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;)Lorg/apache/commons/jexl3/JexlEngine;
.registers 1
iget-object p0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->jexlEngine:Lorg/apache/commons/jexl3/JexlEngine;
return-object p0
.end method
.method public static synthetic access$200(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;)Ljavax/script/ScriptContext;
.registers 1
iget-object p0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->context:Ljavax/script/ScriptContext;
return-object p0
.end method
.method public static synthetic access$300(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;)Ljavax/script/ScriptContext;
.registers 1
iget-object p0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->context:Ljavax/script/ScriptContext;
return-object p0
.end method
.method public static synthetic access$400(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;)Ljavax/script/ScriptContext;
.registers 1
iget-object p0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->context:Ljavax/script/ScriptContext;
return-object p0
.end method
.method public static synthetic access$500()Lorg/apache/commons/logging/Log;
.registers 1
sget-object v0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->LOG:Lorg/apache/commons/logging/Log;
return-object v0
.end method
.method public static synthetic access$900(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;)Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlScriptObject;
.registers 1
iget-object p0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->jexlObject:Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlScriptObject;
return-object p0
.end method
.method private static readerToString(Ljava/io/Reader;)Ljava/lang/String;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/script/ScriptException;
}
.end annotation
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 2
instance-of v1, p0, Ljava/io/BufferedReader;
if-eqz v1, :cond_c
.line 3
check-cast p0, Ljava/io/BufferedReader;
goto :goto_12
.line 4
:cond_c
new-instance v1, Ljava/io/BufferedReader;
invoke-direct {v1, p0}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
move-object p0, v1
.line 5
:goto_12
:try_start_12
invoke-virtual {p0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v1
if-eqz v1, :cond_21
.line 6
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_12
.line 7
:cond_21
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
:try_end_25
.catch Ljava/io/IOException; {:try_start_12 .. :try_end_25} :catch_26
return-object p0
:catch_26
move-exception p0
.line 8
new-instance v0, Ljavax/script/ScriptException;
invoke-direct {v0, p0}, Ljavax/script/ScriptException;-><init>(Ljava/lang/Exception;)V
throw v0
.end method
# virtual methods
.method public compile(Ljava/io/Reader;)Ljavax/script/CompiledScript;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/script/ScriptException;
}
.end annotation
const-string v0, "script must be non-null"
.line 5
invoke-static {p1, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
.line 6
invoke-static {p1}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->readerToString(Ljava/io/Reader;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->compile(Ljava/lang/String;)Ljavax/script/CompiledScript;
move-result-object p1
return-object p1
.end method
.method public compile(Ljava/lang/String;)Ljavax/script/CompiledScript;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/script/ScriptException;
}
.end annotation
const-string v0, "script must be non-null"
.line 1
invoke-static {p1, v0}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
.line 2
:try_start_5
iget-object v0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->jexlEngine:Lorg/apache/commons/jexl3/JexlEngine;
invoke-virtual {v0, p1}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
move-result-object p1
.line 3
new-instance v0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlCompiledScript;
const/4 v1, 0x0
invoke-direct {v0, p0, p1, v1}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlCompiledScript;-><init>(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;Lorg/apache/commons/jexl3/JexlScript;Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$1;)V
:try_end_11
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_11} :catch_12
return-object v0
:catch_12
move-exception p1
.line 4
new-instance v0, Ljavax/script/ScriptException;
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljavax/script/ScriptException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public createBindings()Ljavax/script/Bindings;
.registers 2
new-instance v0, Ljavax/script/SimpleBindings;
invoke-direct {v0}, Ljavax/script/SimpleBindings;-><init>()V
return-object v0
.end method
.method public eval(Ljava/io/Reader;Ljavax/script/ScriptContext;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/script/ScriptException;
}
.end annotation
if-eqz p1, :cond_d
if-eqz p2, :cond_d
.line 1
invoke-static {p1}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->readerToString(Ljava/io/Reader;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1, p2}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->eval(Ljava/lang/String;Ljavax/script/ScriptContext;)Ljava/lang/Object;
move-result-object p1
return-object p1
.line 2
:cond_d
new-instance p1, Ljava/lang/NullPointerException;
const-string p2, "script and context must be non-null"
invoke-direct {p1, p2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public eval(Ljava/lang/String;Ljavax/script/ScriptContext;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljavax/script/ScriptException;
}
.end annotation
if-eqz p1, :cond_27
if-eqz p2, :cond_27
const/16 v0, 0x64
const-string v1, "context"
.line 3
invoke-interface {p2, v1, p2, v0}, Ljavax/script/ScriptContext;->setAttribute(Ljava/lang/String;Ljava/lang/Object;I)V
.line 4
:try_start_b
iget-object v0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->jexlEngine:Lorg/apache/commons/jexl3/JexlEngine;
invoke-virtual {v0, p1}, Lorg/apache/commons/jexl3/JexlEngine;->createScript(Ljava/lang/String;)Lorg/apache/commons/jexl3/JexlScript;
move-result-object p1
.line 5
new-instance v0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlContextWrapper;
const/4 v1, 0x0
invoke-direct {v0, p0, p2, v1}, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$JexlContextWrapper;-><init>(Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;Ljavax/script/ScriptContext;Lorg/apache/commons/jexl3/scripting/JexlScriptEngine$1;)V
.line 6
invoke-interface {p1, v0}, Lorg/apache/commons/jexl3/JexlScript;->execute(Lorg/apache/commons/jexl3/JexlContext;)Ljava/lang/Object;
move-result-object p1
:try_end_1b
.catch Ljava/lang/Exception; {:try_start_b .. :try_end_1b} :catch_1c
return-object p1
:catch_1c
move-exception p1
.line 7
new-instance p2, Ljavax/script/ScriptException;
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljavax/script/ScriptException;-><init>(Ljava/lang/String;)V
throw p2
.line 8
:cond_27
new-instance p1, Ljava/lang/NullPointerException;
const-string p2, "script and context must be non-null"
invoke-direct {p1, p2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public getFactory()Ljavax/script/ScriptEngineFactory;
.registers 2
iget-object v0, p0, Lorg/apache/commons/jexl3/scripting/JexlScriptEngine;->parentFactory:Ljavax/script/ScriptEngineFactory;
return-object v0
.end method