STATEMACHINE
============
an useless library for refactor ur messy if/else business logic.
source: =>github<=
Requirements
------------
* Java 6
Mini DSL
--------
State start = new State("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 ===============>");
start.to("service").when("a > 5");
start.to("task").when("a <= 5");
// new service state
State service = new State("service");
service.to("end");
// 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, true, "beep", "<============= service exit byeWorld ===============>");
// new task state
State task = new State("task");
task.enter = new Signal(String.class).add(callee, false, "beep", "<============= task enter helloWorld ===============>");
task.to("end");
// new end state
State end = new State("end");
end.exec = new Signal(String.class).add(callee, true, "beep", "<============= i am in end state ===============>");
Dot Support
-----------
Graphviz is open source graph visualization software.
#### install grapviz
on ubuntu or debian:
apt-get install graphviz
others:
http://www.graphviz.org/Download..php
#### gen dot file
javac im.saito.Helper.java
java im.saito.Helper
#### gen dot image
dot -Tpng your/path/to/im/saito/Helper/fsm.dot > /your/path/to/fsm.png
wow:
Javascript Interpreter
----------------------
* use it in Transition class / when method,true or false?
Running Statemachine
--------------------
exec the src/example Main to run a statemachine.
Architecture Overview
---------------------
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.
Tips
----
* Statemachine is not a "java like" java library. if u dont like this style. u can change it by urself.
Author
------------
* Saito Wu <saitowu#gmail.com>
License
-------
Statemachine is licensed under the MIT License. (See LICENSE)
分享到:
相关推荐
用java语言实现有限状态机,这个简单地实例能全面地诠释状态机的思想
知道如何用java+有限状态机把大象塞进冰箱吗?
用java编写的一个有限状态机的小程序,模拟一个机器人的活动。
Squirrel State Machine 是基于Java的有限状态机的实现。主要实现功能包括: - 提供友好的API来构建状态机 - 提供基于注释声明状态机 - 事件驱动的状态转移 - 状态机自诊断 - 状态机导出SCXML,DOT文件 ...
java枚举状态机
代码范例列表 第1章 ... useArray2.java 用反射机制使用数组示例2 第10章 示例描述:本章学习泛型。 demoBounds.java 演示有界类型 demoForceChange.java 演示强制类型转换 demoGeneric.java ...
1、资源内容:Java工程示例的SMC - 状态机的基本格式说明及使用示例; 2、应用场景:SMC可以通过一个配置文件,生成有限状态机所需的所有状态类以及状态机类,同时还包括了所有的状态间的转换逻辑。 3、参考链接:...
Java EJB中有、无状态SessionBean的两个例子 Java Socket 聊天通信演示代码 java Socket通信实现.rar Java Telnet客户端实例源码 Java zip压缩包查看程序源码.rar java 一个消息发布网站.rar Java 数字签名、数字...
java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....
使用命令行方式开发Java程序 使用命令行方式开发Java程序 Java程序的运行机制 了解Java程序的运行机制 掌握使用命令行方式开发Java程序的步骤 Java程序的运行机制 ...打开一个DOS窗口,进入Welcome.java文件所在
管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程.doc
【IT十八掌徐培成】Java基础第09天-004.多线程-状态机变换.zip
Web.Java是一个高性能,轻量级的非阻塞式服务器。 为了能更好的提高性能,Web.Java把HTTP服务区分应用和文件服务两种。 Web.Java 整体采用Reactor模式用来接收或响应HTTP请求(原理同Nginx)。 ...
Java源码查看线程的运行状态.rarJava源码Java程序设计经典300例
java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....
创建复杂的有限状态机的简单框架 ==== 有关使用和设计说明,请参见 。 Tron已获得。 Tron使用Maven 3.x构建,并且需要Java 7。 要构建,请cd到顶层目录并执行以下操作: mvn clean install 对于Tron的预构建...
一.JAVA程序传送到手机的方法: JAVA程序传送到手机的方法有4种,分别是手机上网直接下载安装,通过电脑下载到本地 后,然后通过读卡器,数据线,蓝牙,红外线传输JAVA程序到手机.具体方法说明如下. 1.手机上网下载: ...
为什么要使用多线程 39 创建线程和启动 39 线程的生命周期 44 线程管理 45 线程同步 49 线程通信 52 线程池 58 死锁 64 线程相关类 65 十三、 同步★★★★★ 67 十四、 Lock接口 70 十五、 API 71 < java.lang >...
转载有限状态自动机,JAVA实现,源码 *author dbhunter *Email dbhunter@126.com
java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....