
org.fernice.reflare.util.ref.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fernice-reflare Show documentation
Show all versions of fernice-reflare Show documentation
CSS integration through fernice-flare in Java Swing as a LookAndFeel
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.fernice.reflare.util
import java.lang.ref.WeakReference
import kotlin.reflect.KProperty
class VacatingReference(value: T) : WeakReference(value), VacatingReferenceHolder {
fun deref(): T = get() ?: throw VacatedReferenceException()
override fun hasVacated(): Boolean = get() == null
override fun toString(): String {
val value = get()
return if (value != null) "ref<$value>" else "ref"
}
}
interface VacatingReferenceHolder {
fun hasVacated(): Boolean
}
class VacatedReferenceException : RuntimeException("reference has vacated")
© 2015 - 2025 Weber Informatics LLC | Privacy Policy