include "primitives.alh" SimpleAttribute Boolean {} SimpleAttribute TriState {} SimpleAttribute String{ constraint = $ String function constraint(model : Element, name : String): if (is_physical_string(model["model"][name])): return "OK"! else: return "String has non-string value"! $ } Class State { isInitial : Boolean isError : Boolean name : String } Class Up : State {} Class Down : State {} Class Neutral : State {} Association Transition (State, State) { objDetected : TriState } Association UpPressed : Transition (State, State) {} Association NonePressed : Transition (State, State) {} Association DownPressed : Transition (State, State) {}