안녕하세요? JRules 기술 지원을 담당하고 있는 이우항입니다.
프로그래밍 언어을 처음 배울 때 접하게 되는 Hello World 프로그램을 JRuels를 이용하여 작성하도록 하겠습니다.
3개의 파일로 구성됩니다.
Main.java 파일은 java application과 JRules rule engine을 연동하는 클래스 파일입니다.
Hello.java 파일은 engine에서 사용되는 모델입니다.
ruleset.ilr 파일은 비즈니스 로직 즉, rule을 저장한 파일입니다.
///////////////////////////////////////// Main.java -BEGIN
ackage helloworld;
import ilog.rules.engine.*;
public class Main {
public static void main(String[] args) {
// rule의 내용을 저장할 ruleset 객체를 생성합니다.
IlrRuleset ruleset = new IlrRuleset();
// rule 파일을 파싱하여 그 내용을 위에서 생성한
// ruleset 객체에 저장합니다.
if(!ruleset.parseFileName(\"ruleset.ilr\")){
// rule 파일에 문법 에러가 있으면 에러 메세지를
// 표시합니다.
System.out.println(\"Parsing error!\");
System.exit(1);
}
// 위 과정에서 생성된 ruleset을 이용할 rule engine 객체를
// 생성합니다.
IlrContext engine = new IlrContext(ruleset);
// rule engine에서 처리하게 될 모델의 객체를 생성하고
// engine에 등록합니다.
Hello hello = new Hello();
engine.assert(hello);
// 특정 객체가 engine에 등록되면 그 객체가 등록되었을 때
// 실행하도록 만들어진 rule이 있는지 검색합니다.
// 현재 실행되어야 할 rule이 있으면, 그 rule을 실행
// 시킵니다.
engine.fireAllRules();
}
}
///////////////////////////////////////// Main.java -END
///////////////////////////////////////// Hello.java -BEGIN
package helloworld;
public class Hello {
public Hello() {
}
}
///////////////////////////////////////// Hello.java -END
///////////////////////////////////////// ruleset.ilr -BEGIN
import helloworld.*;
import java.lang.*;
import java.io.*;
/** engine에 Hello 객체가 등록되면
\"Hello World\"를 화면 표시하시오
*/
rule helloWorld
{
when
{
Hello();
}
then
{
System.out.println(\"Hello World!!\");
}
};
///////////////////////////////////////// ruleset.ilr -END