Freezable.{frozen, unfrozen} refactoring: add type safety
This commit is contained in:
@@ -40,8 +40,10 @@ abstract class Freezable {
|
||||
|
||||
private var frozen: Boolean = false
|
||||
|
||||
private fun getInstanceWithFreezeStatus(value: Boolean) = if (value == frozen) this else copyBean(this).apply { frozen = value }
|
||||
internal fun getInstanceWithFreezeStatus(value: Boolean) = if (value == frozen) this else copyBean(this).apply { frozen = value }
|
||||
}
|
||||
|
||||
fun frozen() = getInstanceWithFreezeStatus(true)
|
||||
fun unfrozen() = getInstanceWithFreezeStatus(false)
|
||||
}
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <T : Freezable> T.frozen(): T = getInstanceWithFreezeStatus(true) as T
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <T : Freezable> T.unfrozen(): T = getInstanceWithFreezeStatus(false) as T
|
||||
|
||||
Reference in New Issue
Block a user