mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(framework): scope shutdown-only Instances and computeInstances helpers inside installShutdownHook
This commit is contained in:
@@ -93,6 +93,32 @@ object AgentContext {
|
||||
|
||||
private fun installShutdownHook() {
|
||||
|
||||
class Instances(
|
||||
val running: MutableMap<Class<out AbstractAgentModule.Running<out RunningFlowContext>>, Any> = mutableMapOf(),
|
||||
val standalone: MutableMap<Class<out AbstractAgentModule.Standalone>, Any> = mutableMapOf(),
|
||||
val sub: MutableMap<Class<out AbstractAgentModule.Sub<*, *>>, Any> = mutableMapOf(),
|
||||
val additional: MutableMap<Class<*>, Any> = mutableMapOf(),
|
||||
val capability: MutableMap<Class<*>, 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<Class<out AbstractAgentModule.Running<out RunningFlowContext>>, Any> = mutableMapOf(),
|
||||
val standalone: MutableMap<Class<out AbstractAgentModule.Standalone>, Any> = mutableMapOf(),
|
||||
val sub: MutableMap<Class<out AbstractAgentModule.Sub<*, *>>, Any> = mutableMapOf(),
|
||||
val additional: MutableMap<Class<*>, Any> = mutableMapOf(),
|
||||
val capability: MutableMap<Class<*>, Any> = mutableMapOf()
|
||||
)
|
||||
|
||||
|
||||
data class MetaDataContent(
|
||||
val clazz: Class<*>,
|
||||
val value: String
|
||||
|
||||
Reference in New Issue
Block a user