Events With Parameters
[Previous]  [Next] 
|
User Manual [Previous]  [Next] Events With ParametersAn event can have a parameter (of any valid type that the generated language can accept). The generated event method will have this parameter. The value of the parameter can be used in guards or transition actions. It is absolutely necessary that all events with the same name have the same parameter type, or else an error will be raised. Example// The do activity of the first state machine is a thread that // communicates with the second state machine. // It calls the event method e with different arguments. // The second state machine only changes state when the // guard detects that the argument is valid // The argument is also used in the transition action code. class X { stateMachine1 { s1a { do { // This do activity sends events to stateMachine2 e(5); Thread.sleep(1000); e(6); Thread.sleep(1000); e(7); Thread.sleep(1000); e(8); } -> s1b; } s1b {} } stateMachine2 { s2a { entry / {System.out.println("s2a");} e(int a) [a > 6] / {System.out.println("e"+a);} -> s2b; } s2b { entry / {System.out.println("s2b");} e(int a) / {System.out.println("e"+a);} -> s2a; } } public static void main(String [ ] args) { X x = new X(); } } Load the above code into UmpleOnline Syntax |