Package io.github.contractautomata.catlib.automaton.label.action
The action package groups the classes implementing actions of labels.
In Contract Automata, an action can be either an
Actions are matchable and a request action matches an offer action (and vice-versa) if both have the same label.
Actions can have an
Actions with addresses are
These actions are equipped with an address storing senders and receivers of actions.
For two addressed actions to match also their sender and receiver must be equal.
Addressed actions are used to implement Communicating Machines, in which each participant in the composition
is aware of the other participants. Communicating Machines are a model for choreographies.
Actions not having an address are used in Contract Automata: in this case the participants are oblivious of
the other partners and the model assume the presence of an orchestrator in charge of pairing offers and requests.
Class diagram of this package:

Action
is the super class from which the other actions are inheriting.In Contract Automata, an action can be either an
OfferAction
, a RequestAction
or an IdleAction
(i.e., nil action).Actions are matchable and a request action matches an offer action (and vice-versa) if both have the same label.
Actions can have an
Address
, in this case implementing the interface AddressedAction
. Actions with addresses are
AddressedOfferAction
and AddressedRequestActions
.These actions are equipped with an address storing senders and receivers of actions.
For two addressed actions to match also their sender and receiver must be equal.
Addressed actions are used to implement Communicating Machines, in which each participant in the composition
is aware of the other participants. Communicating Machines are a model for choreographies.
Actions not having an address are used in Contract Automata: in this case the participants are oblivious of
the other partners and the model assume the presence of an orchestrator in charge of pairing offers and requests.
Class diagram of this package:

-
Interface Summary Interface Description AddressedAction Interface for an addressed action. -
Class Summary Class Description Action Class implementing an action of a label.Address Class implementing the address of an action.AddressedOfferAction Class implementing an addressed offer action.AddressedRequestAction Class implementing an addressed request action.IdleAction Class implementing an idle action.OfferAction Class implementing an offer action.RequestAction Class implementing a request action.