Ce package contient les interfaces qui définissent les opérations de manipulation de la facette State des agents.
Cette facette traduit l'état courant de l'agent. Cet état est exprimé par un ensemble de champs valués (dits champs d'état), c'est-à-dire par un ensemble de couples : nom x valeur.
A tout moment, l'agent peut modifier son état en changeant la valeur de l'un de ses champs d'état.
Cette facette est "exposée", cela signifie que la consultation de cette facette est possible pour n'importe quel agent du space.
Pour cela, tout agent peut obtenir le descripteur en lecture ({@link Ubiquity.agent.state.RState}) de l'état d'un autre agent via la
méthode {@link Ubiquity.agent.identity.RIdentity#getState()}.
Par contre, les opérations en écriture ne sont possibles que pour l'agent qui porte cette facette (ou le code ayant enregistré cet agent sur le spot local).
En effet, le descripteur en écriture ({@link Ubiquity.agent.state.WState}) ne peut s'obtenir que sur l'handle de l'agent via la méthode {@link Ubiquity.agent.AHandle#myState()}.
NB : seul l'agent lui-même, et le code ayant procédé à son enregistrement, possède une référence sur cet handle.
Pour un composant agent conçu en héritant de la classe {@link Ubiquity.util.component.BaseAgentComponent}, ce descripteur en écriture est aussi disponible sous l'attribut this.state.