Add overridable method "setup" for defining properties

This commit is contained in:
Ilya Chernikov
2018-07-23 10:52:37 +02:00
parent 1de37ca765
commit 3629583942
3 changed files with 4 additions and 2 deletions
@@ -25,7 +25,7 @@ abstract class MyScriptWithMavenDeps {
}
object MyScriptProperties : ScriptingProperties() {
init {
override fun setup() {
include(jvmJavaHomeScriptingProperties)
scriptDefinition {
defaultImports<DependsOn>()
@@ -33,6 +33,8 @@ open class ScriptingProperties(body: ScriptingProperties.() -> Unit = {}) {
body()
}
open fun setup() {}
internal fun makePropertyBag(): ChainedPropertyBag =
ChainedPropertyBag.createOptimized(parentPropertiesBag ?: parentPropertiesBuilder?.makePropertyBag(), data)
@@ -61,7 +61,7 @@ fun createScriptDefinitionFromAnnotatedBaseClass(
}
fun scriptingPropsInstance(kclass: KClass<out ScriptingProperties>): ScriptingProperties = try {
kclass.objectInstance ?: kclass.createInstance()
kclass.objectInstance ?: kclass.createInstance().also { it.setup() }
} catch (e: Throwable) {
throw IllegalArgumentException(ILLEGAL_CONFIG_ANN_ARG, e)
}