e6f4d6e6fa
^KT-65406
78 lines
1.8 KiB
Kotlin
Vendored
78 lines
1.8 KiB
Kotlin
Vendored
class IdeWizard {
|
|
var projectTemplate: Int? /* by */
|
|
field = <this>.setting<Int, SettingType<Int>>(reference = SettingReference<Int, SettingType<Int>>(t = SettingType<Int>(type = 42::class), v = 42))
|
|
get(): Int? {
|
|
return <this>.#projectTemplate$delegate.getValue(thisRef = <this>, property = IdeWizard::projectTemplate)
|
|
}
|
|
set(<set-?>: Int?) {
|
|
return <this>.#projectTemplate$delegate.setValue(thisRef = <this>, property = IdeWizard::projectTemplate, value = <set-?>)
|
|
}
|
|
|
|
constructor() /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
private fun <V : Any, T : SettingType<V>> setting(reference: SettingReference<V, T>): <no name provided><V, T> {
|
|
return { // BLOCK
|
|
local class <no name provided> : ReadWriteProperty<Any?, V?> {
|
|
constructor() /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override operator fun getValue(thisRef: Any?, property: KProperty<*>): V? {
|
|
return reference.<get-v>()
|
|
}
|
|
|
|
override operator fun setValue(thisRef: Any?, property: KProperty<*>, value: V?) {
|
|
when {
|
|
EQEQ(arg0 = value, arg1 = null) -> return Unit
|
|
}
|
|
reference.<set-t>(<set-?> = SettingType<V>(type = value::class) as T)
|
|
reference.<set-v>(<set-?> = value)
|
|
}
|
|
|
|
}
|
|
|
|
<no name provided>()
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
class SettingReference<V : Any, T : SettingType<V>> {
|
|
var t: T
|
|
field = t
|
|
get
|
|
set
|
|
|
|
var v: V
|
|
field = v
|
|
get
|
|
set
|
|
|
|
constructor(t: T, v: V) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class SettingType<out V : Any> {
|
|
val type: KClass<out V>
|
|
field = type
|
|
get
|
|
|
|
constructor(type: KClass<out V>) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|