`
Saito
  • 浏览: 42791 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

非Java style且没什么用的Java有限状态机.

阅读更多
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实现

    知道如何用java+有限状态机把大象塞进冰箱吗?

    有限状态机的java例子

    用java编写的一个有限状态机的小程序,模拟一个机器人的活动。

    轻量级Java有限状态机SquirrelStateMachine.zip

    Squirrel State Machine 是基于Java的有限状态机的实现。主要实现功能包括: - 提供友好的API来构建状态机 - 提供基于注释声明状态机 - 事件驱动的状态转移 - 状态机自诊断 - 状态机导出SCXML,DOT文件 ...

    java枚举状态机

    java枚举状态机

    Java开发技术大全(500个源代码).

    代码范例列表 第1章 ... useArray2.java 用反射机制使用数组示例2 第10章 示例描述:本章学习泛型。 demoBounds.java 演示有界类型 demoForceChange.java 演示强制类型转换 demoGeneric.java ...

    SMC - 状态机代码生成工具 - Java工程示例

    1、资源内容:Java工程示例的SMC - 状态机的基本格式说明及使用示例; 2、应用场景:SMC可以通过一个配置文件,生成有限状态机所需的所有状态类以及状态机类,同时还包括了所有的状态间的转换逻辑。 3、参考链接:...

    Java源码包100个设计实例.zip

    Java EJB中有、无状态SessionBean的两个例子 Java Socket 聊天通信演示代码 java Socket通信实现.rar Java Telnet客户端实例源码 Java zip压缩包查看程序源码.rar java 一个消息发布网站.rar Java 数字签名、数字...

    JAVA_API1.6文档(中文)

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

    Java程序设计基础:使用命令行方式开发Java程序.pptx

    使用命令行方式开发Java程序 使用命令行方式开发Java程序 Java程序的运行机制 了解Java程序的运行机制 掌握使用命令行方式开发Java程序的步骤 Java程序的运行机制 ...打开一个DOS窗口,进入Welcome.java文件所在

    管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程.doc

    管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程.doc

    【IT十八掌徐培成】Java基础第09天-004.多线程-状态机变换.zip

    【IT十八掌徐培成】Java基础第09天-004.多线程-状态机变换.zip

    非阻塞式服务器Web.Java.zip

    Web.Java是一个高性能,轻量级的非阻塞式服务器。 为了能更好的提高性能,Web.Java把HTTP服务区分应用和文件服务两种。 Web.Java 整体采用Reactor模式用来接收或响应HTTP请求(原理同Nginx)。 ...

    Java源码查看线程的运行状态.rar

    Java源码查看线程的运行状态.rarJava源码Java程序设计经典300例

    Java 1.6 API 中文 New

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

    Tron:适用于Java的复杂的有限状态机框架

    创建复杂的有限状态机的简单框架 ==== 有关使用和设计说明,请参见 。 Tron已获得。 Tron使用Maven 3.x构建,并且需要Java 7。 要构建,请cd到顶层目录并执行以下操作: mvn clean install 对于Tron的预构建...

     一.JAVA程序传送到手机的方法:

    一.JAVA程序传送到手机的方法:  JAVA程序传送到手机的方法有4种,分别是手机上网直接下载安装,通过电脑下载到本地 后,然后通过读卡器,数据线,蓝牙,红外线传输JAVA程序到手机.具体方法说明如下.  1.手机上网下载: ...

    Java基础知识点总结.docx

    为什么要使用多线程 39 创建线程和启动 39 线程的生命周期 44 线程管理 45 线程同步 49 线程通信 52 线程池 58 死锁 64 线程相关类 65 十三、 同步★★★★★ 67 十四、 Lock接口 70 十五、 API 71 &lt; java.lang &gt;...

    有限状态自动机,JAVA实现

    转载有限状态自动机,JAVA实现,源码 *author dbhunter *Email dbhunter@126.com

    JavaAPI中文chm文档 part2

    java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....

Global site tag (gtag.js) - Google Analytics