mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
优化
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*/
|
||||
package com.script
|
||||
|
||||
import java.io.InputStreamReader
|
||||
import java.io.PrintWriter
|
||||
import java.io.Reader
|
||||
import java.io.Writer
|
||||
import java.util.*
|
||||
|
||||
open class SimpleScriptContext : ScriptContext {
|
||||
private var engineScope: Bindings = SimpleBindings()
|
||||
override var errorWriter: Writer = PrintWriter(System.err, true)
|
||||
private var globalScope: Bindings? = null
|
||||
override var reader: Reader = InputStreamReader(System.`in`)
|
||||
override var writer: Writer = PrintWriter(System.out, true)
|
||||
override fun setBindings(bindings: Bindings?, scope: Int) {
|
||||
when (scope) {
|
||||
100 -> {
|
||||
if (bindings == null) {
|
||||
throw NullPointerException("Engine scope cannot be null.")
|
||||
}
|
||||
engineScope = bindings
|
||||
return
|
||||
}
|
||||
200 -> {
|
||||
globalScope = bindings
|
||||
return
|
||||
}
|
||||
}
|
||||
throw IllegalArgumentException("Invalid scope value.")
|
||||
}
|
||||
|
||||
override fun getAttribute(name: String): Any? {
|
||||
if (engineScope.containsKey(name)) {
|
||||
return this.getAttribute(name, 100)
|
||||
}
|
||||
return if (globalScope?.containsKey(name) != true) {
|
||||
null
|
||||
} else this.getAttribute(name, 200)
|
||||
}
|
||||
|
||||
override fun getAttribute(name: String, scope: Int): Any? {
|
||||
when (scope) {
|
||||
100 -> {
|
||||
return engineScope[name]
|
||||
}
|
||||
200 -> {
|
||||
return globalScope?.get(name)
|
||||
}
|
||||
}
|
||||
throw IllegalArgumentException("Illegal scope value.")
|
||||
}
|
||||
|
||||
override fun removeAttribute(name: String, scope: Int): Any? {
|
||||
when (scope) {
|
||||
100 -> {
|
||||
return getBindings(100)?.remove(name)
|
||||
}
|
||||
200 -> {
|
||||
return getBindings(200)?.remove(name)
|
||||
}
|
||||
}
|
||||
throw IllegalArgumentException("Illegal scope value.")
|
||||
}
|
||||
|
||||
override fun setAttribute(name: String, value: Any?, scope: Int) {
|
||||
when (scope) {
|
||||
100 -> {
|
||||
engineScope[name] = value
|
||||
return
|
||||
}
|
||||
200 -> {
|
||||
globalScope?.put(name, value)
|
||||
return
|
||||
}
|
||||
}
|
||||
throw IllegalArgumentException("Illegal scope value.")
|
||||
}
|
||||
|
||||
override fun getAttributesScope(name: String): Int {
|
||||
if (engineScope.containsKey(name)) {
|
||||
return 100
|
||||
}
|
||||
return if (globalScope?.containsKey(name) != true) {
|
||||
-1
|
||||
} else 200
|
||||
}
|
||||
|
||||
override fun getBindings(scope: Int): Bindings? {
|
||||
if (scope == 100) {
|
||||
return engineScope
|
||||
}
|
||||
if (scope == 200) {
|
||||
return globalScope
|
||||
}
|
||||
throw IllegalArgumentException("Illegal scope value.")
|
||||
}
|
||||
|
||||
override val scopes: List<Int>
|
||||
get() = Companion.scopes
|
||||
|
||||
companion object {
|
||||
private var scopes: MutableList<Int> = ArrayList(2)
|
||||
|
||||
init {
|
||||
scopes.add(100)
|
||||
scopes.add(200)
|
||||
scopes = Collections.unmodifiableList(scopes)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user