diff options
Diffstat (limited to 'src/main/kotlin/moe/nea/ledger/utils/telemetry/Context.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/ledger/utils/telemetry/Context.kt | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/main/kotlin/moe/nea/ledger/utils/telemetry/Context.kt b/src/main/kotlin/moe/nea/ledger/utils/telemetry/Context.kt deleted file mode 100644 index 3c30a52..0000000 --- a/src/main/kotlin/moe/nea/ledger/utils/telemetry/Context.kt +++ /dev/null @@ -1,57 +0,0 @@ -package moe.nea.ledger.utils.telemetry - -import com.google.gson.JsonObject - -class Context(val data: MutableMap<String, ContextValue> = mutableMapOf()) : ContextValue.Collatable<Context> { - - inline fun <reified T : ContextValue> getT(key: String): T? { - return get(key) as? T - } - - fun get(key: String): ContextValue? { - return data[key] - } - - fun add(key: String, value: ContextValue) { - data[key] = value - } - - @Suppress("NOTHING_TO_INLINE") - private inline fun <T : ContextValue.Collatable<T>> cope( - left: ContextValue.Collatable<T>, - right: ContextValue - ): ContextValue { - return try { - left.combineWith(right as T) - } catch (ex: Exception) { - // TODO: cope with this better - right - } - } - - override fun combineWith(overrides: Context): Context { - val copy = data.toMutableMap() - for ((key, overrideValue) in overrides.data) { - copy.merge(key, overrideValue) { old, new -> - if (old is ContextValue.Collatable<*>) { - cope(old, new) - } else { - new - } - } - } - return Context(copy) - } - - override fun actualize(): Context { - return this - } - - override fun serialize(): JsonObject { - val obj = JsonObject() - data.forEach { (k, v) -> - obj.add(k, v.serialize()) - } - return obj - } -}
\ No newline at end of file |