From 528e88f6134af25c0e81e08aa8428348ef375385 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Fri, 27 Feb 2026 00:34:07 +0800 Subject: [PATCH] refactor(framework): scope shutdown-only `Instances` and `computeInstances` helpers inside `installShutdownHook` --- .../api/agent/factory/context/AgentContext.kt | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt index 9651135b..38d81bea 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt @@ -93,6 +93,32 @@ object AgentContext { private fun installShutdownHook() { + class Instances( + val running: MutableMap>, Any> = mutableMapOf(), + val standalone: MutableMap, Any> = mutableMapOf(), + val sub: MutableMap>, Any> = mutableMapOf(), + val additional: MutableMap, Any> = mutableMapOf(), + val capability: MutableMap, Any> = mutableMapOf() + ) + + fun computeInstances(): Instances { + val instances = Instances() + modules.values.forEach { + when (it) { + is ModuleContextData.Running<*> -> instances.running[it.clazz] = it.instance + is ModuleContextData.Standalone<*> -> instances.standalone[it.clazz] = it.instance + is ModuleContextData.Sub<*> -> instances.sub[it.clazz] = it.instance + } + + } + instances.additional.putAll(additionalComponents) + capabilities.values.forEach { + instances.capability.putAll(it.cores) + } + return instances + } + + fun getModuleInstance(clazz: Class<*>, instances: Instances): Any? { return if (AbstractAgentModule.Running::class.java.isAssignableFrom(clazz)) { instances.running[clazz] @@ -141,32 +167,6 @@ object AgentContext { }) } - private fun computeInstances(): Instances { - val instances = Instances() - modules.values.forEach { - when (it) { - is ModuleContextData.Running<*> -> instances.running[it.clazz] = it.instance - is ModuleContextData.Standalone<*> -> instances.standalone[it.clazz] = it.instance - is ModuleContextData.Sub<*> -> instances.sub[it.clazz] = it.instance - } - - } - instances.additional.putAll(additionalComponents) - capabilities.values.forEach { - instances.capability.putAll(it.cores) - } - return instances - } - - private class Instances( - val running: MutableMap>, Any> = mutableMapOf(), - val standalone: MutableMap, Any> = mutableMapOf(), - val sub: MutableMap>, Any> = mutableMapOf(), - val additional: MutableMap, Any> = mutableMapOf(), - val capability: MutableMap, Any> = mutableMapOf() - ) - - data class MetaDataContent( val clazz: Class<*>, val value: String