Rename ScriptEvaluationEnvironment into ScriptEvaluationConfiguration

This commit is contained in:
Ilya Chernikov
2018-08-21 13:01:45 +03:00
parent bb22dadc1e
commit 2fe5f78921
6 changed files with 23 additions and 23 deletions
@@ -129,5 +129,5 @@ interface CompiledScript<out ScriptBase : Any> {
val compilationConfiguration: ScriptCompilationConfiguration
suspend fun instantiate(scriptEvaluationEnvironment: ScriptEvaluationEnvironment?): ResultWithDiagnostics<ScriptBase>
suspend fun instantiate(scriptEvaluationConfiguration: ScriptEvaluationConfiguration?): ResultWithDiagnostics<ScriptBase>
}
@@ -9,30 +9,30 @@ package kotlin.script.experimental.api
import kotlin.script.experimental.util.PropertiesCollection
interface ScriptEvaluationEnvironmentKeys
interface ScriptEvaluationConfigurationKeys
class ScriptEvaluationEnvironment(baseEvaluationEnvironments: Iterable<ScriptEvaluationEnvironment>, body: Builder.() -> Unit) :
class ScriptEvaluationConfiguration(baseEvaluationEnvironments: Iterable<ScriptEvaluationConfiguration>, body: Builder.() -> Unit) :
PropertiesCollection(Builder(baseEvaluationEnvironments).apply(body).data) {
constructor(body: Builder.() -> Unit = {}) : this(emptyList(), body)
constructor(
vararg baseEvaluationEnvironments: ScriptEvaluationEnvironment, body: Builder.() -> Unit = {}
) : this(baseEvaluationEnvironments.asIterable(), body)
vararg baseConfigurations: ScriptEvaluationConfiguration, body: Builder.() -> Unit = {}
) : this(baseConfigurations.asIterable(), body)
class Builder internal constructor(baseEvaluationEnvironments: Iterable<ScriptEvaluationEnvironment>) :
class Builder internal constructor(baseEvaluationEnvironments: Iterable<ScriptEvaluationConfiguration>) :
ScriptCompilationConfigurationKeys,
PropertiesCollection.Builder(baseEvaluationEnvironments)
companion object : ScriptEvaluationEnvironmentKeys
companion object : ScriptEvaluationConfigurationKeys
}
val ScriptEvaluationEnvironmentKeys.implicitReceivers by PropertiesCollection.key<List<Any>>()
val ScriptEvaluationConfigurationKeys.implicitReceivers by PropertiesCollection.key<List<Any>>()
val ScriptEvaluationEnvironmentKeys.contextVariables by PropertiesCollection.key<Map<String, Any?>>() // external variables
val ScriptEvaluationConfigurationKeys.contextVariables by PropertiesCollection.key<Map<String, Any?>>() // external variables
val ScriptEvaluationEnvironmentKeys.constructorArgs by PropertiesCollection.key<List<Any?>>()
val ScriptEvaluationConfigurationKeys.constructorArgs by PropertiesCollection.key<List<Any?>>()
val ScriptEvaluationEnvironmentKeys.runArgs by PropertiesCollection.key<List<Any?>>()
val ScriptEvaluationConfigurationKeys.runArgs by PropertiesCollection.key<List<Any?>>()
sealed class ResultValue {
class Value(val name: String, val value: Any?, val type: String) : ResultValue() {
@@ -42,12 +42,12 @@ sealed class ResultValue {
object Unit : ResultValue()
}
data class EvaluationResult(val returnValue: ResultValue, val environment: ScriptEvaluationEnvironment?)
data class EvaluationResult(val returnValue: ResultValue, val configuration: ScriptEvaluationConfiguration?)
interface ScriptEvaluator {
suspend operator fun invoke(
compiledScript: CompiledScript<*>,
scriptEvaluationEnvironment: ScriptEvaluationEnvironment?
scriptEvaluationConfiguration: ScriptEvaluationConfiguration?
): ResultWithDiagnostics<EvaluationResult>
}
@@ -31,11 +31,11 @@ abstract class BasicScriptingHost(
open fun eval(
script: ScriptSource,
scriptCompilationConfiguration: ScriptCompilationConfiguration,
environment: ScriptEvaluationEnvironment?
configuration: ScriptEvaluationConfiguration?
): ResultWithDiagnostics<EvaluationResult> =
runInCoroutineContext {
compiler(script, scriptCompilationConfiguration).onSuccess {
evaluator(it, environment)
evaluator(it, configuration)
}
}
}
@@ -55,8 +55,8 @@ class KJvmCompiledScript<out ScriptBase : Any>(
private val scriptClassFQName: String
) : CompiledScript<ScriptBase> {
override suspend fun instantiate(scriptEvaluationEnvironment: ScriptEvaluationEnvironment?): ResultWithDiagnostics<ScriptBase> = try {
val baseClassLoader = scriptEvaluationEnvironment?.get(JvmScriptEvaluationEnvironment.baseClassLoader)
override suspend fun instantiate(scriptEvaluationConfiguration: ScriptEvaluationConfiguration?): ResultWithDiagnostics<ScriptBase> = try {
val baseClassLoader = scriptEvaluationConfiguration?.get(JvmScriptEvaluationEnvironment.baseClassLoader)
?: Thread.currentThread().contextClassLoader
val dependencies = compilationConfiguration[ScriptCompilationConfiguration.dependencies]
?.flatMap { (it as? JvmDependency)?.classpath?.map { it.toURI().toURL() } ?: emptyList() }
@@ -17,16 +17,16 @@ open class JvmScriptEvaluationEnvironment : PropertiesCollection.Builder() {
val JvmScriptEvaluationEnvironment.baseClassLoader by PropertiesCollection.key<ClassLoader?>(Thread.currentThread().contextClassLoader)
val ScriptEvaluationEnvironment.jvm get() = JvmScriptEvaluationEnvironment()
val ScriptEvaluationConfiguration.jvm get() = JvmScriptEvaluationEnvironment()
open class BasicJvmScriptEvaluator : ScriptEvaluator {
override suspend operator fun invoke(
compiledScript: CompiledScript<*>,
scriptEvaluationEnvironment: ScriptEvaluationEnvironment?
scriptEvaluationConfiguration: ScriptEvaluationConfiguration?
): ResultWithDiagnostics<EvaluationResult> =
try {
val obj = compiledScript.instantiate(scriptEvaluationEnvironment)
val obj = compiledScript.instantiate(scriptEvaluationConfiguration)
when (obj) {
is ResultWithDiagnostics.Failure -> obj
is ResultWithDiagnostics.Success -> {
@@ -37,7 +37,7 @@ open class BasicJvmScriptEvaluator : ScriptEvaluator {
if (scriptObject !is Class<*>)
ResultWithDiagnostics.Failure(ScriptDiagnostic("expecting class in this implementation, got ${scriptObject?.javaClass}"))
else {
val receivers = scriptEvaluationEnvironment?.get(ScriptEvaluationEnvironment.implicitReceivers)
val receivers = scriptEvaluationConfiguration?.get(ScriptEvaluationConfiguration.implicitReceivers)
val instance = if (receivers == null) {
scriptObject.getConstructor().newInstance()
} else {
@@ -45,7 +45,7 @@ open class BasicJvmScriptEvaluator : ScriptEvaluator {
}
// TODO: fix result value
ResultWithDiagnostics.Success(EvaluationResult(ResultValue.Value("", instance, ""), scriptEvaluationEnvironment))
ResultWithDiagnostics.Success(EvaluationResult(ResultValue.Value("", instance, ""), scriptEvaluationConfiguration))
}
}
}
@@ -53,7 +53,7 @@ class JvmGetScriptingClass : GetScriptingClass {
if (dependencies == null) {
dependencies = newDeps
} else {
if (newDeps != dependencies) throw IllegalArgumentException("scripting environment dependencies changed")
if (newDeps != dependencies) throw IllegalArgumentException("scripting configuration dependencies changed")
}
if (!baseClassLoaderIsInitialized) {