`
samsung_789
  • 浏览: 1031 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

心飞扬

    博客分类:
  • java
阅读更多
dialect设置规则当中要使用的语言类型 ,默认除了java还有mevl。本文简单介绍mvel。
mvel是一种嵌入式脚本语言,在规则文件上可以用这种语言建立他们的断言、返回值、Eval和推论。mvel分解析模式(Interpreted Mode)和编译模式(Compiled Mode)


mvel语法:
表示对象的属性

user.name   相当于java代码 user.getName()
user.manager.name  相当于java代码 user.getManager().getName()
比较
user.name == 'John Doe'
(user.name == 'John Doe') && ((x * 2) - 1) > 20


返回值
a = 10;
b = (a = a * 2) + 10; 相当于java代码  a=10; a= a*2; b=  a + 10;
return a;


数组和list访问:user[5]   相当于java代码 user.get(5);
Map访问:user["foobar"]   相当于java代码 user.get("foobar")


创建对象:
new String("foo")


对一个对象,多个属性赋值
with (user = new User()) {
       name = "John Doe",
       age = 28,
       sex = Sex.MALE,
       admin = true
    }




脚本:
note:
语法跟一些函数语言或脚本语言差不多,如scala


调用某些方法
String test = "Hello";
Object result = MVEL.eval("toUpperCase()", test);


获取pojo的属性值
User user = new User();
user.setName("Bob");
user.setPassword("Despot");
user.setAge(30);


String name = (String) MVEL.eval("name", user);


比较
public class Person {
    private String name;
    public void setName(String name) { this.name = name; }
    public String getName() { return this.name; }
}


Person
personInst = new Person();
personInst.setName("Mr. Foo");


Object result = MVEL.eval("name == 'Mr. Foo' ", personInst);


赋值
Map vars = new HashMap();
vars.put("x", new Integer(5));
vars.put("y", new Integer(10));


Integer result = (Integer) MVEL.eval("x * y", vars);
相当于java代码 Integer  result =  (Integer)vars.get("x") *  (Integer)vars.get(" y ")
assert result.intValue() == 50;  // Mind the JDK 1.4 compatible code


规则文件使用mvel示例



示例1:
package com.demo.mvel


import com.demo.*


rule "rule1"
dialect "mvel"
when
#设是规则引擎语法
$a : Applicant( age < 18 )
then  
#mvel 语法
$a.valid = false;
end


示例2:
package com.demo.mvel


import com.demo.*
import java.util.List;


rule "rule1"
    salience 2
     dialect "java"
     when
  eval(true);
     then
  Applicant app = new Applicant("依晨",20);
  insert(app);
end


rule "rule2"
    salience 1
    dialect "mvel"
    #no-loop true 不会循环
    when
       $app:Applicant(name == "依晨",age<30)
    then
       #update方法2
      #$app.age + 1是mvel语法
       Applicant app = new Applicant("依晨",$app.age + 1);
       update(drools.getWorkingMemory().getFactHandleByIdentity($app),app);
   
       #update方法1
       #$app.setAge($app.getAge() + 1);
       #update($app);
       System.out.println("------" + $app.name+"("+ $app.age + ")");
end
分享到:
评论

相关推荐

    我心飞扬主图 通达信主图指标最精准指标.doc

    "我心飞扬主图通达信主图指标最精准指标" 这篇文章将详细介绍"我心飞扬主图通达信主图指标"的相关知识点,该指标是一种技术指标,用于股票市场分析。 首先,让我们来了解该指标的计算公式。该指标的计算公式可以...

    我心飞扬猪猪侠java类加密工具

    我心飞扬加密工具是对java class文件进行加密保护防止反编译的工具!本工具全面支持linux/unix/windows操作系统。 继推出v1.0版本后,获得了用户大量的支持与的反馈,我们再次推出本v2.0版,对加密算法进行了更大的...

    学生会新梦心飞扬主持人大赛项目策划书.doc

    这篇文档是关于职业技术学院神木校区“新梦心飞扬”主持人大赛的项目策划书,旨在发掘和培养具有潜力和综合素质的主持人才,丰富校园文化生活,同时提供一个展示自我、追求梦想的平台。大赛口号是“我的舞台我主持”...

    我心飞扬彩色简历Word模板.doc

    "我心飞扬彩色简历Word模板.doc" 这是一份个人简历模板,涵盖了个人信息、教育背景、工作经验、技能培训和求职意向等方面的内容。下面是从这份简历中提取的知识点: 1. 个人信息:姓名、性别、出生日期、联系电话...

    通达信指标公式源码我心飞扬指标公式.doc

    【通达信指标公式我心飞扬指标公式】是一款在通达信证券分析软件中使用的自定义技术指标,用于辅助投资者判断股票的买入和卖出时机。该指标公式综合了多个技术指标,包括短期、中期和长期的动量、相对强度以及成交量...

    我心飞扬java类加密工具2.1(亲测可用)

    简要介绍: 本工具是对java class文件进行加密保护的工具!继推出v1.0版本后,获得了用户大量的支持与的反馈,我们再次推出本升级版,对加密算法进行了更大的改进,安全性大大提升! 众所周知,java编译后的class...

    java Class文件解密大师

    众所周知,java编译后的class文件是一种中间字节码文件,...此工具 支持我心飞扬类加密工具(class文件加密器) V2 以及class文件加密专家V3.5等网络上能找到加密工具 制作 by 大师♂罗庄 http://blog.csdn.net/luozhuang

    文华财经指标公式源码短线买卖看15分钟最好公式源码.doc

    - TPV、T我心飞扬、T做空资金和T飞扬资金:这些是各种指标的加权平均值,用于综合评估市场状况。 - WR慢:WR线的进一步平滑,提供更稳定的市场趋势指示。 这个公式综合了多个技术指标,试图全面分析市场动态,...

    文华期货指标恒指15分钟顶背离k线文华财经指标公式源码.doc

    8. **我心飞扬**、**TPV**、**T 我心飞扬**、**T 做空资金** 和 **T 飞扬资金**:这些变量是用来综合评价市场状态和趋势的,通过加权平均和移动平均处理不同指标的结果。 9. **主力控盘 Q** 和 **上限 Q**、**下限 ...

    音乐系心理活动策划方案.doc

    活动的主题为“心健康,心飞扬,传递亲与爱”,体现了活动关注个体内心成长,鼓励情感交流的核心理念。 活动时间为2011年5月25日,主要分为游戏天地、心理沙龙和看电影三个部分。在游戏天地中,设计了幸运大抽签、...

    心理健康海报内容.doc

    海报主题“悦青春,心飞扬——解开你的心理密码”旨在引导青少年关注自身心理健康,学会应对生活中的各种挑战。 1. **中学生心理安康的标准**: - 认知能力发展正常:这包括强烈的求知欲、良好的学习兴趣以及在...

    单位工会活动方案-范文.doc

    1. **主题**:鼓励全员参与,展现自我,主题为“快乐参与,我心飞扬”。 2. **时间地点**:预定于20xx年x月x日在凤凰南街鼎盛钱庄举行。 3. **比赛规则**:员工按抽签顺序演唱,评分标准包括歌词清晰度、音准、旋律...

    单位工会活动方案..doc

    1. 概况:主题“快乐参与,我心飞扬”,全员参与,自由选歌,无语言限制,旨在提供一个展现自我和享受音乐的平台。 2. 评分标准:综合考虑歌词表达、音准、情感投入、节奏感及与伴奏配合等因素,评委打分并取平均值...

    部门述职报告.docx

    1. **迎新晚会**:作为新学期的开端,文艺部联合其他部门和团队策划并执行了一场主题为“梦想起航,我心飞扬”的迎新晚会。活动旨在欢迎新生,增进师生关系,展示系部特色,取得了显著的效果,得到了广泛好评。 2. ...

    文艺部述职报告.pdf

    - **迎新晚会**:作为每年开学的重要活动,旨在欢迎新生,增强师生互动,展示系部特色,例如“梦想起航,我心飞扬”主题晚会。 - **十佳歌手大赛**:发掘和培养学生的音乐才能,增进新老生交流,提升舞台表现和...

    中西方文化差异对广告翻译的影响PPT学习教案.pptx

    而中文版的“透心凉,心飞扬”则更含蓄,更符合中国人的审美习惯。这要求译者既要理解原文的意图,又要用目标语言的文化风格来重构信息。 再者,社会制度的差异也会反映在广告中。中国的公益广告如“五讲四美三热爱...

    百货开业仪式庆典活动策划方案.ppt

    2. **活动主题**:“馨绽放·心飞扬·XXX”传达出浪漫、时尚和创新的品牌格调。主视觉以蝴蝶为主题,寓意品牌的蜕变与成长,象征着企业不断向前,充满生机与活力。 3. **场地布置**:场地分为停车区、贵宾区、观礼...

    百货开业庆典活动创意方案.pptx

    活动的主题设定为“馨绽放·心飞扬·XXX”,旨在展现浪漫、时尚且富有活力的形象。 二、场地布置 1. 停车区:确保来宾车辆的停放便利,体现组织的周到服务。 2. 贵宾区:设置贵宾休息篷房,提供整洁、卫生、保暖和...

    各种证书英语翻译.doc

    - “My Heart Flies” Singing petition(我心飞扬歌唱比赛) - Poetry Recitation Contest(中文系诗歌朗诵比赛) - Poetry Creation Contest(诗歌创作比赛) - Photography petition(摄影大赛) - "Golden ...

Global site tag (gtag.js) - Google Analytics