Interface IRuleBase
The RuleBase is a repository for all rule resources. The RuleBase itself does
not contain runtime data, instead sessions are created from the RuleBase in
which data can be inserted and processed.
The RuleBase is invalidated when there are rules loaded from namespace and
one of the required PMVs gets deactivated.
The RuleBase is reloaded when the rules were loaded from namespace ONLY and
all the required PVMs are activated.
When a rule base is invalidated, all method calls to create new rule session
or execute rules from created sessions will throw
InvalidatedRuleBaseException
.
- API:
- This is a public API.
-
Method Summary
Modifier and TypeMethodDescriptionDeprecated.useRules.create()
boolean
Deprecated.useRules.create()
void
loadRules
(IRuleResource ruleResource) Deprecated.useRules.create()
void
loadRulesFromNamespace
(String namespace) Deprecated.
-
Method Details
-
loadRulesFromNamespace
Deprecated.Add all rules in the provided namespace into this rule base. The rules inside subfolders of the namespace will not be loaded.
If the namespace is available in the required projects, the rules will be combined orthogonally. And only the rule file with the highest level is loaded if there are two or more rule files with same name.Example:
IRuleBase ruleBase = Rules.engine().createRuleBase(); ruleBase.loadRulesFromNamespace("namespace.of.rules");
Note: Current official supported rule resource types are decision table (*.xls) and native rule language (*.drl) from Drools.
- Parameters:
namespace
- is the folder hierarchy that contains rule resources and inside the root rules folder of the Ivy project. It's similar to java's package. Example, there is a folder structure in the project:[Rules folder]\namespace\of\rules
Then, the namespace of the rules is:namespace.of.rules
- API:
- This public API is available in Java.
-
createSession
Deprecated.useRules.create()
Create a new stateless rule session to execute the rules that defined by the rule resources in this rule base. The rule session can execute the rules on an object or a collection of objects- Returns:
- A new rule session.
- See Also:
- API:
- This public API is available in Java.
-
loadRules
Deprecated.useRules.create()
Load a specific rule resource into this rule base. This rule resource will override the existing resource in current rule base which has the same identifier.
Example:
IRuleResource ruleFromFile = ... // Load rule resource from external file system. IRuleResource ruleFromDb = ... // Load rule resource from database. ruleBase.loadRules(ruleFromFile); ruleBase.loadRules(ruleFromDb);
- Parameters:
ruleResource
- is a rule resource- See Also:
- API:
- This public API is available in Java.
-
isInvalidated
Deprecated.useRules.create()
- Returns:
false
always- API:
- This public API is available in Java.
-
Rules.create()