an useless library for refactor ur messy if/else business logic.
- Java 6
State start = createState("start");
start.enter = new Signal(String.class).add(callee, true, "beep", "<============= start enter helloWorld ===============>");
start.exec = new Signal(String.class).add(callee, true, "beep", "<============= i am in start state ===============>");
// new service state
State service = createState("service");
// add enter and exit signal
service.enter = new Signal(String.class).add(callee, true, "beep", "<============= service enter helloWorld ===============>");
service.exec = new Signal(String.class).add(callee, true, "beep", "<============= i am in service state ===============>");
service.exit = new Signal(String.class).add(callee, false, "beep", "<============= service exit byeWorld ===============>");
// new task state
State task = createState("task");
task.enter = new Signal(String.class).add(callee, true, "beep", "<============= task enter helloWorld ===============>");
// new end state
State end = createState("end");
end.exec = new Signal(String.class).add(callee, true, "beep", "<============= i am in end state ===============>");
// process transition
start.to(service).when("a > 5");
start.to(task).when("a <= 5");
service.to(end);
task.to(end);
Graphviz is open source graph visualization software.
on ubuntu or debian:
apt-get install graphviz
others:
http://www.graphviz.org/Download..php
javac im.saito.dot.Helper.java
java im.saito.dot.Helper
im.saito.dot folder will found :
- use it in Transition class / when method,true or false?
exec the src/example Main to run a statemachine.
Statemachine is organized into two parts: a state machine and a java signals which is inspired by as3signals.each state has three inject point.(enter exec exit)u can use it do anything u want with signals.
- Statemachine is not a "java like" java library. if u dont like this style. u can change it by urself.
- Saito Wu saitowu@gmail.com
Statemachine is licensed under the MIT License. (See LICENSE)