it.unibo.jakta.agents.bdi.context.AgentContext.kt Maven / Gradle / Ivy
package it.unibo.jakta.agents.bdi.context
import it.unibo.jakta.agents.bdi.actions.InternalAction
import it.unibo.jakta.agents.bdi.actions.InternalActions
import it.unibo.jakta.agents.bdi.beliefs.BeliefBase
import it.unibo.jakta.agents.bdi.context.impl.AgentContextImpl
import it.unibo.jakta.agents.bdi.events.Event
import it.unibo.jakta.agents.bdi.events.EventQueue
import it.unibo.jakta.agents.bdi.intentions.IntentionPool
import it.unibo.jakta.agents.bdi.plans.Plan
import it.unibo.jakta.agents.bdi.plans.PlanLibrary
/**
* The Context is the actual state of a BDI Agent's structures.
*/
interface AgentContext {
/** [BeliefBase] of the BDI Agent */
val beliefBase: BeliefBase
/** [Event]s on which the BDI Agent reacts */
val events: EventQueue
/** [Plan]s collection of the BDI Agent */
val planLibrary: PlanLibrary
val intentions: IntentionPool
val internalActions: Map
fun copy(
beliefBase: BeliefBase = this.beliefBase,
events: EventQueue = this.events,
planLibrary: PlanLibrary = this.planLibrary,
intentions: IntentionPool = this.intentions,
internalActions: Map = this.internalActions,
): AgentContext = AgentContextImpl(beliefBase, events, planLibrary, internalActions, intentions)
companion object {
fun of(
beliefBase: BeliefBase = BeliefBase.empty(),
events: EventQueue = emptyList(),
planLibrary: PlanLibrary = PlanLibrary.empty(),
internalActions: Map = InternalActions.default(),
): AgentContext = AgentContextImpl(beliefBase, events, planLibrary, internalActions)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy