mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(framework): store AgentContext additional components by type and update init/injection target collection
This commit is contained in:
@@ -20,7 +20,7 @@ class CapabilityInjectorFactory : AgentBaseFactory() {
|
|||||||
|
|
||||||
private fun buildTargets(agentContext: AgentContext): List<Any> {
|
private fun buildTargets(agentContext: AgentContext): List<Any> {
|
||||||
val moduleInstances = agentContext.modules.values.map { it.instance }
|
val moduleInstances = agentContext.modules.values.map { it.instance }
|
||||||
return moduleInstances + agentContext.additionalComponents
|
return moduleInstances + agentContext.additionalComponents.values
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun injectCapabilities(
|
private fun injectCapabilities(
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class ComponentInitHookExecuteFactory : AgentBaseFactory() {
|
|||||||
|
|
||||||
private fun buildTargets(agentContext: AgentContext): List<Any> {
|
private fun buildTargets(agentContext: AgentContext): List<Any> {
|
||||||
val moduleInstances = agentContext.modules.values.map { it.instance }
|
val moduleInstances = agentContext.modules.values.map { it.instance }
|
||||||
return moduleInstances + agentContext.additionalComponents
|
return moduleInstances + agentContext.additionalComponents.values
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun collectInitMethods(
|
private fun collectInitMethods(
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class ComponentInjectorFactory : AgentBaseFactory() {
|
|||||||
subModules.forEach { it.injectTarget.add(standalone.instance) }
|
subModules.forEach { it.injectTarget.add(standalone.instance) }
|
||||||
}
|
}
|
||||||
|
|
||||||
agentContext.additionalComponents.forEach { additional ->
|
agentContext.additionalComponents.values.forEach { additional ->
|
||||||
injectIntoTarget(additional, providersForAdditional)
|
injectIntoTarget(additional, providersForAdditional)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ object AgentContext {
|
|||||||
val capabilities: Map<String, CapabilityImplementation>
|
val capabilities: Map<String, CapabilityImplementation>
|
||||||
get() = _capabilities
|
get() = _capabilities
|
||||||
|
|
||||||
private val _additionalComponents = mutableSetOf<Any>()
|
private val _additionalComponents = mutableMapOf<Class<*>, Any>()
|
||||||
|
|
||||||
val additionalComponents: Set<Any>
|
val additionalComponents: Map<Class<*>, Any>
|
||||||
get() = _additionalComponents
|
get() = _additionalComponents
|
||||||
|
|
||||||
private val _metadata: MutableMap<String, MetaDataContent> = mutableMapOf()
|
private val _metadata: MutableMap<String, MetaDataContent> = mutableMapOf()
|
||||||
@@ -45,7 +45,7 @@ object AgentContext {
|
|||||||
if (type.isAnnotationPresent(AgentComponent::class.java)) {
|
if (type.isAnnotationPresent(AgentComponent::class.java)) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
_additionalComponents.add(instance)
|
_additionalComponents[type] = instance
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user