interface IChoice { enum Style {State, Mixed, Event}; in Style choose(); out void ss(); out void sm(); out void se(); out void es(); out void em(); out void ee(); out void ms(); out void mm(); out void me(); behaviour { Style preference = Style.State; [preference.State] { on choose: {preference = Style.State; ss; reply(preference);} on choose: {preference = Style.Mixed; sm; reply(preference);} on choose: {preference = Style.Event; se; reply(preference);} } on choose: [preference.Event] {preference = Style.State; es; reply(preference);} on choose: [preference.Event] {preference = Style.Mixed; em; reply(preference);} on choose: [preference.Event] {preference = Style.Event; ee; reply(preference);} [preference.Mixed] on choose: {preference = Style.State; ms; reply(preference);} on choose: { [preference.Mixed] {preference = Style.Mixed; mm; reply(preference);} {[preference.Mixed] {preference = Style.Event; me; reply(preference);}} } } }