`
Mr-zhang
  • 浏览: 18408 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

主题:Visual Rules Solution Java集成接口<11>—Java类中含类

阅读更多
本案例的需求是:
规则包:新建一个学生规则包,此规则包接受一系列参数(编号,姓名,性别,年龄,年级,备注),定义两个map参数(学生,教师)用于接收数据,一个学生由多名教师授课,录入一条学生信息,显示该学生的任课老师。
Java类调用:在Eclipse中制作,main中接收对象,将对象传给规则执行,查询执行结果,可执行选择版本,执行不同版本下的规则文件。
规则包开发
新建规则包
右键点击工程“test1”—“新建规则包(P)”,并将规则包命名为“学生”,如下图:






右键点击规则包“学生”下的“对象库”,在“对象库”中的传入数据中定义如下参数:(参照:规则包开发 3、定义参数)




右键点击“对象库”—“添加对象分类”,如下图:





右键点击“对象分类”—“数据库字典”,如下图:




弹出窗体,进行修改后点击确定,如下图:





将“对象库”中的参数复制到“数据字典”中,由于“数据字典”的特殊,复制的参数可能会发生改变,如下图:





修改成如下图:





点击“数据字典”,选择选下卡“数据字典操作”,点击图标 ,如下图:




勾选linkData(java.util.Map)方法,如下图:





点击确定后显示如下:




右键点击“对象库”—“添加树状结构”,如下图:





将复制“对象库”的变量到“数据树”中的“数据树属性”选项卡中,如下图:






点击“数据树”中的“数据树操作”选项卡中的图标 ,弹出如下窗体,勾选上方法loadFromMap(java.util.Map)和createMapDate()两个方法,如下图:





确定后显示如下:




右键点击“数据树”—“添加树状结构”,并将该树状结构的节点改名为“学生”,如下图:





定义“学生”参数和设置节点“学生”的属性,如下图:





“教师”节点同“学生”节点,完成如下:






图3-3-3-10-17 “教师”节点

新建规则
右键点击规则包“学生”—“添加规则(N)”,如下图:





配置规则,点击图标 —“请点击选择”—“数据字典操作”,如下图:





点击“点击选择字典表操作”—“数据字典”—“方法”—“数据库直接...”,如下图:





选择的方法,需要传参,点击“请选择”—“传入数据”—“学生”,如下图:





点击图标 —“执行方法”,如下图:




点击“选择方法”—“数据树”—“方法”—“数据树.loadFromMap({arg1})”,如下图:





选择的方法需要传入一个map类型的方法,点击“请点击选择”—“选择值”,如下图:




新建规则“字典数据”,如下图:






点击“数据字典”选择“数据字典数据”选项卡,复制“id”,如下图:






将复制的id,粘贴到规则“字典数据”中,如下图:






粘贴后如下图:




如下操作:






点击“请选择”—“传入数据”—“编号”,如下图:






根据编号将其他数据添加进来,当添加到“性别”是,发现传入数据中没有对应的“性别”,如下图:






复制“对象库”中的“性别”,如下图:





操作如下图:






完成如下配置




新建规则“数据树”,右键点击“数据树”—“树状结构操作向导”—“设置数据属性向导”,如下图:





弹出窗体,勾选上字段,如下图:




点击确定后,显示如下图:





新建规则“学生节点”, 右键点击“学生节点”—“树状结构操作向导”—“设置数据属性向导”,如下图:



勾选如下字段






点击确定后显示如下:




新建规则“学生节点”, 右键点击“学生节点”—“树状结构操作向导”—“设置数据属性向导”,修改规则如下图:





设置属性,如下图:




新建规则“教师取值”,点击图标 —“请点击选择”—“变量赋值”,如下图:





点击“选择变量”—“传入数据”—“教师”,如下图:




选择如下方法,如下图:





完成规则配置




修改规则包“学生”的外部调用名“student.info”,如下图:





选择规则包“学生”点击图标 ,弹出窗体“浏览文件夹”,选择目录,如下图:




图3-3-3-10-48 导出编译文件
Java调用
新建类Student.java
根据学生“节点”定义,字段名称需与规则中一致,如下
package com.flagleader.student;
/**
* 学生信息
* @author
*
*/
public class Student {
private int id;//编号
private String name;//姓名
private int age;//年龄
private char sex;//性别
private String grade;//年龄
private String remark;//备注
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}

public Student() {}
public Student(int id, String name, int age, char sex, String grade,
String remark) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
this.grade = grade;
this.remark = remark;
}
@Override
public String toString() {
return "Student [age=" + age + ", grade=" + grade + ", id=" + id
+ ", name=" + name + ", remark=" + remark + ", sex=" + sex
+ "]";
}

}
新建类StudentInfo.java
根据 “对象库”中的两个map参数定义,字段名称需与规则中一致,如下
package com.flagleader.student;
import java.util.ArrayList;
import java.util.List;
public class StudentInfo {
private Student student=new Student();
private List<Teacher> teacher = new ArrayList<Teacher>();
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public List<Teacher> getTeacher() {
return teacher;
}
public void setTeacher(List<Teacher> teacher) {
this.teacher = teacher;
}
public StudentInfo() {
teacher.add(new Teacher(1, "李丽"));
teacher.add(new Teacher(2, "战栗"));
teacher.add(new Teacher(3, "庆阳"));
teacher.add(new Teacher(4, "周娇"));
teacher.add(new Teacher(5, "秦毅"));
}
}
新建类StudentMap.java
“对象库”中所有参数,其中部分参数封装在Student.java中,在此定义一个Student类的字段,字段名由使用者定义,还有部分参数封装在StudentInfo.java中,在定义一个StudentInfo类的字段,字段名使用者定义,如下图:
package com.flagleader.student;
public class StudentMap {
private Student student =new Student();
private StudentInfo teacher=new StudentInfo();
public StudentInfo getTeacher() {
return teacher;
}
public void setTeacher(StudentInfo teacher) {
this.teacher = teacher;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public StudentMap() {
student = new Student(6, "庆隆", 12, '男', "六年级", "无");
}
}
新建类StudentDto.java
在java工程中添加一个java类,名为StudentDto.java,其内容编辑如下
package com.flagleader.student;
import java.io.File;
import com.flagleader.engine.RuleEngine;
import com.flagleader.engine.RuleEngineException;
import com.flagleader.engine.RuleEngineFactory;
import com.flagleader.engine.RuleEngineManager;
public class StudentDto {
public static void main(String[] args) {
try {
RuleEngineManager.getInstance().init(new File("E:\\rscfile"));
RuleEngine engine=RuleEngineFactory.newInstance().getRuleEngine();
StudentMap map=new StudentMap();
engine.executeBeans("student.info", map,map.getStudent());
System.out.println(map.getStudent());
System.out.println(map.getTeacher().getTeacher());
System.out.println(map.getTeacher().getStudent());
} catch (RuleEngineException e) {
e.printStackTrace();
}
}
}

执行java测试类
点击执行后,可以看到如下结果:




这时候我们发现Teacher中的数据不对,那是因为我们规则中有对节点“teacher”进行了操作,修改规则,如下图:






保存后将规则导出,如下图:




为了能执行规则件E:\rscfile\1.1\studnet\info.rsc,新建了一个java类StudentDto1.java,代码如下
package com.flagleader.student;
import java.io.File;
import com.flagleader.engine.RuleEngine;
import com.flagleader.engine.RuleEngineException;
import com.flagleader.engine.RuleEngineFactory;
import com.flagleader.engine.RuleEngineManager;
public class StudentDto1 {
public static void main(String[] args) {
try {
RuleEngineManager.getInstance().init(new File("E:\\rscfile"));
RuleEngine engine=RuleEngineFactory.getInstance("1.1").getRuleEngine();
StudentMap map=new StudentMap();
engine.executeBeans("student.info", map,map.getStudent());
System.out.println(map.getStudent());
System.out.println(map.getTeacher().getTeacher());
} catch (RuleEngineException e) {
e.printStackTrace();
}
}
}

点击执行后,可以看到如下结果:




说明已经调用了student.info规则包,并且根据传入的参数,返回处理结果。
  • 大小: 90.3 KB
  • 大小: 124.7 KB
  • 大小: 107.6 KB
  • 大小: 83.4 KB
  • 大小: 39.8 KB
  • 大小: 94.5 KB
  • 大小: 100 KB
  • 大小: 138.1 KB
  • 大小: 111.2 KB
  • 大小: 131.6 KB
  • 大小: 102.9 KB
  • 大小: 96.2 KB
  • 大小: 102.5 KB
  • 大小: 96.9 KB
  • 大小: 101.7 KB
  • 大小: 149.9 KB
  • 大小: 128.4 KB
  • 大小: 120.1 KB
  • 大小: 116.1 KB
  • 大小: 114.9 KB
  • 大小: 90.1 KB
  • 大小: 92.6 KB
  • 大小: 116.1 KB
  • 大小: 95.4 KB
  • 大小: 88.2 KB
  • 大小: 126.7 KB
  • 大小: 87.1 KB
  • 大小: 83.8 KB
  • 大小: 116.7 KB
  • 大小: 96.8 KB
  • 大小: 100.9 KB
  • 大小: 130.7 KB
  • 大小: 100.8 KB
  • 大小: 111.6 KB
  • 大小: 106.3 KB
  • 大小: 63.1 KB
  • 大小: 117.7 KB
  • 大小: 115.4 KB
  • 大小: 65.2 KB
  • 大小: 115.2 KB
  • 大小: 116.4 KB
  • 大小: 141 KB
  • 大小: 122.1 KB
  • 大小: 92.9 KB
  • 大小: 90.5 KB
  • 大小: 84.9 KB
  • 大小: 138.8 KB
  • 大小: 108.2 KB
  • 大小: 128.2 KB
  • 大小: 125.3 KB
  • 大小: 183.7 KB
  • 大小: 127.9 KB
分享到:
评论

相关推荐

    水木清华站∶Java版精华区 含jsp及js等集合.chm

    Java版精华区 &lt;br&gt;含java jsp及js等精华帖子合集&lt;br&gt;适合收藏 查询&lt;br&gt;&lt;br&gt;序号 精华区主题 &lt;br&gt;--------------------------------&lt;br&gt; 1. [目录]Java教程 &lt;br&gt; 1. [目录]Java语言教程 &lt;br&gt; 2. [目录]来自java的传说...

    Visual.Assist.X10.0.1246.0

    &lt;br&gt;&lt;br&gt;开发环境:Visual Assist X兼容于以下开发环境,当您改变或新增了IDE时,需要重新安装Visual Assist X:&lt;br&gt;&lt;br&gt;Microsoft Visual Studio 2005 Team System&lt;br&gt;Microsoft Visual Studio 2005 Professional ...

    Visual.Assist.X10.5.1727.0

    &lt;br&gt;&lt;br&gt;开发环境:Visual Assist X兼容于以下开发环境,当您改变或新增了IDE时,需要重新安装Visual Assist X:&lt;br&gt;&lt;br&gt;Microsoft Visual Studio 2005 Team System&lt;br&gt;Microsoft Visual Studio 2005 Professional ...

    JSP訳文--工具--Java

    &lt;br&gt;UltraEdit 7.2&lt;br&gt;WebGain Studio 4 with VisualCafe&lt;br&gt;Forte for Java开发指南&lt;br&gt;Dreamweaver UltraDev&lt;br&gt;IBM NetObjects ScriptBuilder3.0&lt;br&gt;使用HomeSite加速JSP的开发&lt;br&gt;Java2的安全新特性下的Applet...

    JAVA编辑器

    本人不想使用庞大的Visual &lt;br&gt;Studio,但为了能编辑和使用&lt;br&gt;java,不得不开发了这一款小工具&lt;br&gt;,可以编译java程序,但是必须&lt;br&gt;安装好Java环境.&lt;br&gt;&lt;br&gt; 本编辑器有如下功能或者是&lt;br&gt;如下优点:&lt;br&gt; 1,关键字...

    图书馆管理信息系统

    &lt;br&gt;源文件的运行环境&lt;br&gt;操作系统:Windows 2000及其以上版本&lt;br&gt;开发环境:Microsoft Visual Studio 2005及其以上版本&lt;br&gt;数据库:SQL Server 2005及其以上版本&lt;br&gt;Web服务器:IIS 5.1及以上版本&lt;br&gt;来源...

    Visual C++ 编程资源大全(英文控件)

    1,01.zip&lt;br&gt;Toolbar - Custom status messages and tooltips&lt;br&gt;用户状态信息与工具提示(3KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;Remove system menu from floating toolbar&lt;br&gt;从浮动工具条中去除系统菜单(2KB)&lt;END&gt;&lt;br&gt;3,03....

    Visual C++ 编程资源大全(源码 窗体)

    1,pic_open.zip&lt;br&gt;带位图预览的打开文件对话框(4KB)&lt;END&gt;&lt;br&gt;2,bmpdlg.zip&lt;br&gt;一个位图对话框类 (11KB)&lt;END&gt;&lt;br&gt;3,folder.zip&lt;br&gt;只显示文件夹信息的文件对话框(2KB)&lt;END&gt;&lt;br&gt;4,dir_pic.zip&lt;br&gt;文件目录搜集工具...

    Visual C++ 编程资源大全(英文源码 其它)

    1,01.zip&lt;br&gt;Output&lt;br&gt;显示所有的调试信息(5KB)&lt;END&gt;&lt;br&gt;2,02.zip&lt;br&gt;Some general debugging tips&lt;br&gt;一般的调试技巧(11KB)&lt;END&gt;&lt;br&gt;3,03.zip&lt;br&gt;Debugging ISAPI extension&lt;br&gt;调试ISAPI扩展(4KB)&lt;END&gt;&lt;br&gt;4,04....

    C#编程经验技巧宝典

    C#编程经验技巧宝典源代码,目录如下:&lt;br&gt;第1章 开发环境 1&lt;br&gt;&lt;br&gt;1.1 Visual Studio开发环境安装与配置 2&lt;br&gt;&lt;br&gt;0001 安装Visual Studio 2005开发环境须知 2&lt;br&gt;&lt;br&gt;0002 配置合适的Visual Studio 2005...

    Word OCX ActiveX控件

    &lt;br&gt; Word OCX ActiveX控件 是一个有功能的强大针对MS Word开发的ActiveX控件。...&lt;br&gt; &lt;br&gt; Word OCX ActiveX控件屏幕截图:&lt;br&gt;&lt;br&gt; &lt;img src=DownloadFilesother_activeximageswordocx.jpg&gt;&lt;br&gt;&lt;br&gt;

    Visual C++ 编程资源大全(源码 控件)

    CButtonST.zip&lt;br&gt;只要你的程序中使用按钮,这个类库就使你可以轻松做出图文并茂的按钮来(133KB)&lt;END&gt;&lt;br&gt;10,hoverbut.zip&lt;br&gt;这个类库是对鼠标敏感的按纽,你用它可以做出象Office助手提示选项那样的东东来(24KB)...

    DriverStudio 3.2 升级补丁

    DriverStudio 3.2 升级补丁&lt;br&gt;&lt;br&gt;将DriverStudio 3.2升级至DriverStudio 3.2.1&lt;br&gt;&lt;br&gt;原说明如下:&lt;br&gt;&lt;br&gt;Compuware DriverStudio – DriverSuite&lt;br&gt;Version 3.2 ONLY&lt;br&gt;&lt;br&gt;Version 3.2 patch.&lt;br&gt;The ...

    Visual-MinGW

    * Home Page&lt;br&gt;* http://visual-mingw.sourceforge.net/&lt;br&gt;*&lt;br&gt;* Mailing list&lt;br&gt;* http://sourceforge.net/mail/?group_id=46778&lt;br&gt;* visual-mingw-general@lists.sourceforge.net&lt;br&gt;*&lt;br&gt;* License&lt;br&gt;* ...

    利用wsdl.exe生成webservice代理类

    /language:&lt;language&gt; 用于生成的代理类的语言。请从“CS”、“VB”、“JS”、“VJS”、 “CPP”中选择,或者为实现 System.CodeDom.Compiler.CodeDomProvider 的类提供一个完全限定的名称。默认语言为“CS”...

    Visual C++ 编程资源大全(源码 图形)

    一个绘画的例子(165KB)&lt;END&gt;&lt;br&gt;9,autofont.zip&lt;br&gt;自动字体处理类(3KB)&lt;END&gt;&lt;br&gt;10,colorapp.zip&lt;br&gt;CColor - 在一个类中包括了RGB和HLS设定可执行程序(10KB)&lt;END&gt;&lt;br&gt;11,colorapp2.zip&lt;br&gt;CColor - 在一个类中包括...

    Asp.net 2.0高级编程(pdf)

    19&lt;br&gt;2.2文档窗口 20&lt;br&gt;2.2.1文档窗口中的视图 20&lt;br&gt;2.2.2标记导航器 21&lt;br&gt;2.2.3页面标签 22&lt;br&gt;2.2.4代码改变状态的通知 23&lt;br&gt;2.2.5错误通知和辅助 23&lt;br&gt;2.3工具箱 25&lt;br&gt;2.4SolutionExplorer 26&lt;br&gt;2.5...

    cuda windows本地环境配置教程JAVA开发配置

    &lt;artifactId&gt;javacv&lt;/artifactId&gt; &lt;version&gt;1.5.6&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.bytedeco&lt;/groupId&gt; &lt;artifactId&gt;javacpp&lt;/artifactId&gt; &lt;version&gt;1.5.6&lt;/version&gt; &lt;/dependency&gt; ...

    visual Assist x 10.4.1619 +Crack完整版

    &lt;br&gt;&lt;br&gt;Visual Assist X具有强大的编辑特色,提高了生产效率,可以完全集成到您的Microsoft开发环境中,升级了您的IDE,在不改变编程习惯的同时就可以感受到Visual Assist X为您带来的好处。 &lt;br&gt;&lt;br&gt;Visual Assist...

    Visual Basic 6.0 SP6 简体中文迷你版

    ☆☆☆☆ Visual Basic 6.0 SP6 简体中文迷你版 ☆☆☆☆&lt;br&gt;&lt;br&gt;此版本是在以前网上流传的Visual Basic 6.0 SP6迷你版基础上修改制作而成。它集成了最新的Service Pack 6升级包,以及“类生成器”和“资源编辑器”...

Global site tag (gtag.js) - Google Analytics