diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt index 6d96a8e3..723d902d 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/Context.kt @@ -5,22 +5,41 @@ import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule import java.time.ZonedDateTime object AgentContext { - val modules = mutableMapOf>() - val capabilities = mutableMapOf, Any>() + + private val _modules = + mutableMapOf>() + + val modules: Map> + get() = _modules + + private val _capabilities = + mutableMapOf, Any?>() + + val capabilities: Map, Any?> + get() = _capabilities + + fun addModule(name: String, module: ModuleContextData) { + _modules[name] = module + } + + fun addCapability(type: Class, value: T) { + _capabilities[type] = value + } } sealed class ModuleContextData { abstract val clazz: Class abstract val instance: T abstract val launchTime: ZonedDateTime + abstract val modelInfo: ModelInfo - val modelInfo: ModelInfo? = null val metadata = mutableMapOf() data class Running>( override val clazz: Class, override val instance: T, override val launchTime: ZonedDateTime, + override val modelInfo: ModelInfo, val order: Int, val enabled: Boolean @@ -30,6 +49,7 @@ sealed class ModuleContextData { override val clazz: Class, override val instance: T, override val launchTime: ZonedDateTime, + override val modelInfo: ModelInfo, val injectTarget: MutableSet = mutableSetOf() ) : ModuleContextData() @@ -38,6 +58,7 @@ sealed class ModuleContextData { override val clazz: Class, override val instance: T, override val launchTime: ZonedDateTime, + override val modelInfo: ModelInfo, val injectTarget: MutableSet = mutableSetOf() ) : ModuleContextData()