1 Star 0 Fork 21

limeng / 规则引擎--超轻量级 less-rules

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

规则引擎--超轻量级

介绍

超级轻量级的规则引擎,简单易用,超级容易上手

软件架构

软件架构说明 略

安装教程

目前还没有发布到maven的中央仓库,所以只能下载源码,打包到自己的仓库,使用

使用说明

1、【规则表达式例子】:

 ((alarmId == '123' or alarmId == '124') and  clearFlag != '0') and alarmTitle contains 'xd21' and alarmText notcontains 'Jzdd' and alarmCount in ['45','xx22','23','2333'] and alarmLevel > 3 and alarmServity < 8

2、java代码例子

//默认引擎实例:只要有符合的规则就返回结果
LessRuleEngine lre = LessEngineFactory.getDefaultEngine();  

//全量引擎实例:返回全部符合的规则
LessRuleEngine lre = LessEngineFactory.getWholeEngine();   

// _新建一个规则_
RuleEntity re = new  RuleEntity();    

// _设置规则分组标识_ 
re.setGroupId("meeting");  

// _设置规则唯一标识_ 
re.setId("12345678");     

//表达式字符串
String express = " clearFlag notin ['2','3','4'] and ( alarmId == '123' or alarmId == '124' )";

// _设置规则表达式_ 
re.setExpress(express);  

// _规则注册到规则引擎_ 
EngineResponse opResult = lre.add(re);    

//判断规则解析添加是否成功
if(opResult.getOpCode() == EngineResponse.ENGINE_OP_RES_FAIL) {
    System.out.println("规则解析有错误,此规则没有添加成功:"+opResult.getMsg());
    return ;
}        

// _新建一个事实_ 
Map<String,String> fact = new HashMap<String,String>();
fact.put("alarmId", "124");
fact.put("clearFlag", "1");

// _引擎判断事实是否符合规则_ 
EngineResponse result = lre.fire(fact);

//结果判断
if(result.getMatchCode() == EngineResponse.ENGINE_MATCH_RES_SUCC) {
   // _有规则匹配成功 TODO Something_ 
}

【判断符号说明】

操作符 说明 例子
== 恒等于 alarmId == '123'
!= 不等于 clearFlag != '0'
contains 包含 alarmTitle contains 'xd21'
notcontains 不包含 alarmText notcontains 'Jzdd'
in 在集合 alarmCount in ['45','xx22','23','2333']
notin 不在集合 alarmType notin ['45','xx22','23','2333']
> 大于 alarmLevel > 3
< 小于 alarmLevel < 4
<= 小于或等于 alarmLevel >= 5
>= 大于或等于 alarmLevel > 6

【逻辑符号说明】

逻辑符号 说明 备注
and 且 && 大小写敏感:小写
or 或 || 大小写敏感:小写

参与贡献

空文件

简介

超级轻量级的规则引擎,简单易用,超级容易上手 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/tczhilian/less-rules.git
git@gitee.com:tczhilian/less-rules.git
tczhilian
less-rules
规则引擎--超轻量级 less-rules
master

搜索帮助

14c37bed 8189591 565d56ea 8189591