it.unibo.jakta.agents.bdi.intentions.impl.IntentionPoolImpl.kt Maven / Gradle / Ivy
package it.unibo.jakta.agents.bdi.intentions.impl
import it.unibo.jakta.agents.bdi.intentions.Intention
import it.unibo.jakta.agents.bdi.intentions.IntentionID
import it.unibo.jakta.agents.bdi.intentions.IntentionPool
internal data class IntentionPoolImpl(
val from: Map = emptyMap(),
) : IntentionPool, LinkedHashMap(from) {
override fun updateIntention(intention: Intention): IntentionPool =
IntentionPoolImpl(this + Pair(intention.id, intention))
override fun nextIntention(): Intention = this.entries.iterator().next().value
override fun pop(): IntentionPool = IntentionPoolImpl(this - nextIntention().id)
override fun deleteIntention(intentionID: IntentionID): IntentionPool =
IntentionPoolImpl(this - intentionID)
override fun toString(): String = from.values.joinToString(separator = "\n")
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy