Version: 4.0.0-alpha

Working with facts

Facts are items that the rules should try to match.

Assert

To add facts to the session use assert method.

session.assert(new Message("hello"));
session.assert(new Message("hello world"));
session.assert(new Message("goodbye"));

As a convenience any object passed into getSession will also be asserted.

Note assert is typically used pre engine execution and during the execution of the rules.

flow.getSession(new Message("hello"), new Message("hello world"), new Message("goodbye"));

Retract

To remove facts from the session use the retract method.

var m = new Message("hello");
//assert the fact into the engine
session.assert(m);
//remove the fact from the engine
session.retract(m);

Note retract is typically used during the execution of the rules.

Modify

To modify a fact use the modify method.

Note modify will not work with immutable objects (i.e. strings).

var m = new Message("hello");
session.assert(m);
m.text = "hello goodbye";
session.modify(m);

Note modify is typically used during the execution of the rules.

Retrieving Facts

To get a list of facts currently in the session you can use the getFacts() method exposed on a session.

session.assert(1);
session.assert("A");
session.assert("B");
session.assert(2);
session.getFacts(); //[1, "A", "B", 2];

You may also pass in a Type to getFacts which will return facts only of the given type.

session.assert(1);
session.assert("A");
session.assert("B");
session.assert(2);
session.getFacts(Number); //[1, 2];
session.getFacts(String); //["A", "B"];