Implementeert een composite state die een embedded history state heeft. Het is niet de bedoeling om at run-time effectief een geneste structuur van states op te bouwen. De leaf-states worden rechtstreeksals huidige state aan een display object gehangen. Wanneer men zo'n state verlaat, verwittigt deze zijn containing state (als hij er een heeft), die de state dan als history state bewaart. De history state wordt enkel gebruikt als je als target state de containing state opgeeft. Een composite state kan dus ook aan een display object hangen maar enkel als je daarnaar een transitie hebt gemaakt. De composite State zal alle events doorpropageren naar zijn history state. (alternatieve impl: de composite state voet nogmaals ZetState uit met als parameter zijn history state) OnEntry en OnExit worden altijd gepropageerd. Uiteraard moet elke state zijn containing state kennen om zich als history state in te stellen. Initiele implementatie ondersteunt geen initial state in de composite state. M.a.w. kan niet naar de composite state transitioneren als geen enkele van de substates niet eerst actief is geweest en dan verlaten is geweest. persistent 1 ControllerState 0 De naam van de history state. Deze is van type ControllerState ControllerState 1 %Status %Status State:ControllerState %Status %Library.CacheStorage CompositeStateWithHistoryDefaultData listnode "CompositeStateWithHistory" HistoryState