summaryrefslogtreecommitdiff
path: root/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
diff options
context:
space:
mode:
Diffstat (limited to 'module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java')
-rw-r--r--module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java25
1 files changed, 14 insertions, 11 deletions
diff --git a/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java b/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
index f624603..b73e2e8 100644
--- a/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
+++ b/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
@@ -7,36 +7,39 @@ import org.kie.api.event.rule.RuleRuntimeEventListener;
import org.kie.api.runtime.KieSession;
import java.io.Closeable;
+import java.io.File;
import java.io.IOException;
public class Engine implements Closeable {
public final DbIo io;
public final KieSession session;
- public Engine(String k, String database) throws IOException {
+ public Engine(String name, String database, File output, String[] agendaGroups) throws IOException {
var services = KieServices.Factory.get();
var container = services.getKieClasspathContainer();
- var kieBase = container.getKieBase(k);
+ var kieBase = container.getKieBase(name);
io = new DbIo(kieBase);
var objects = io.load(database);
- session = container.newKieSession(k);
+ session = container.newKieSession(name);
- session.setGlobal("te", new TemplateEngine());
+ var logger = new WorkingMemoryConsoleLogger(session);
+ session.addEventListener((AgendaEventListener) logger);
+ session.addEventListener((RuleRuntimeEventListener) logger);
+
+ session.setGlobal("te", new TemplateEngine(output));
for (var object : objects) {
System.out.println("object = " + object);
session.insert(object);
}
- var logger = new WorkingMemoryConsoleLogger(session);
- session.addEventListener((AgendaEventListener) logger);
- session.addEventListener((RuleRuntimeEventListener) logger);
-
- session.getAgenda().getAgendaGroup("init").setFocus();
-
- session.fireAllRules();
+ for (var agendaGroup : agendaGroups) {
+ System.out.println("Setting agenda: " + agendaGroup);
+ session.getAgenda().getAgendaGroup(agendaGroup).setFocus();
+ session.fireAllRules();
+ }
}
@Override