mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +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> {
|
||||
val moduleInstances = agentContext.modules.values.map { it.instance }
|
||||
return moduleInstances + agentContext.additionalComponents
|
||||
return moduleInstances + agentContext.additionalComponents.values
|
||||
}
|
||||
|
||||
private fun injectCapabilities(
|
||||
|
||||
@@ -21,7 +21,7 @@ class ComponentInitHookExecuteFactory : AgentBaseFactory() {
|
||||
|
||||
private fun buildTargets(agentContext: AgentContext): List<Any> {
|
||||
val moduleInstances = agentContext.modules.values.map { it.instance }
|
||||
return moduleInstances + agentContext.additionalComponents
|
||||
return moduleInstances + agentContext.additionalComponents.values
|
||||
}
|
||||
|
||||
private fun collectInitMethods(
|
||||
|
||||
@@ -37,7 +37,7 @@ class ComponentInjectorFactory : AgentBaseFactory() {
|
||||
subModules.forEach { it.injectTarget.add(standalone.instance) }
|
||||
}
|
||||
|
||||
agentContext.additionalComponents.forEach { additional ->
|
||||
agentContext.additionalComponents.values.forEach { additional ->
|
||||
injectIntoTarget(additional, providersForAdditional)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ object AgentContext {
|
||||
val capabilities: Map<String, CapabilityImplementation>
|
||||
get() = _capabilities
|
||||
|
||||
private val _additionalComponents = mutableSetOf<Any>()
|
||||
private val _additionalComponents = mutableMapOf<Class<*>, Any>()
|
||||
|
||||
val additionalComponents: Set<Any>
|
||||
val additionalComponents: Map<Class<*>, Any>
|
||||
get() = _additionalComponents
|
||||
|
||||
private val _metadata: MutableMap<String, MetaDataContent> = mutableMapOf()
|
||||
@@ -45,7 +45,7 @@ object AgentContext {
|
||||
if (type.isAnnotationPresent(AgentComponent::class.java)) {
|
||||
return false
|
||||
}
|
||||
_additionalComponents.add(instance)
|
||||
_additionalComponents[type] = instance
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user