Class CompositeRule
- java.lang.Object
-
- org.rossonet.ext.rules.core.BasicRule
-
- org.rossonet.ext.rules.support.composite.CompositeRule
-
- Direct Known Subclasses:
ActivationRuleGroup,ConditionalRuleGroup,UnitRuleGroup
public abstract class CompositeRule extends BasicRule
Base class representing a composite rule composed of a set of rules. This class is not thread-safe. Sub-classes are inherently not thread-safe.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<Rule>rulesThe set of composing rules.-
Fields inherited from class org.rossonet.ext.rules.core.BasicRule
description, name, priority
-
Fields inherited from interface org.rossonet.ext.rules.api.Rule
DEFAULT_DESCRIPTION, DEFAULT_NAME, DEFAULT_PRIORITY
-
-
Constructor Summary
Constructors Constructor Description CompositeRule()Create a newCompositeRule.CompositeRule(java.lang.String name)Create a newCompositeRule.CompositeRule(java.lang.String name, java.lang.String description)Create a newCompositeRule.CompositeRule(java.lang.String name, java.lang.String description, int priority)Create a newCompositeRule.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddRule(java.lang.Object rule)Add a rule to the composite rule.abstract booleanevaluate(Facts facts)This method implements the rule's condition(s).abstract voidexecute(Facts facts)This method implements the rule's action(s).voidremoveRule(java.lang.Object rule)Remove a rule from the composite rule.-
Methods inherited from class org.rossonet.ext.rules.core.BasicRule
compareTo, equals, getDescription, getName, getPriority, hashCode, setDescription, setPriority, toString
-
-
-
-
Field Detail
-
rules
protected java.util.Set<Rule> rules
The set of composing rules.
-
-
Constructor Detail
-
CompositeRule
public CompositeRule()
Create a newCompositeRule.
-
CompositeRule
public CompositeRule(java.lang.String name)
Create a newCompositeRule.- Parameters:
name- rule name
-
CompositeRule
public CompositeRule(java.lang.String name, java.lang.String description)Create a newCompositeRule.- Parameters:
name- rule namedescription- rule description
-
CompositeRule
public CompositeRule(java.lang.String name, java.lang.String description, int priority)Create a newCompositeRule.- Parameters:
name- rule namedescription- rule descriptionpriority- rule priority
-
-
Method Detail
-
addRule
public void addRule(java.lang.Object rule)
Add a rule to the composite rule.- Parameters:
rule- the rule to add
-
evaluate
public abstract boolean evaluate(Facts facts)
Description copied from class:BasicRuleThis method implements the rule's condition(s). Implementations should handle any runtime exception and return true/false accordingly
-
execute
public abstract void execute(Facts facts) throws java.lang.Exception
Description copied from class:BasicRuleThis method implements the rule's action(s).
-
removeRule
public void removeRule(java.lang.Object rule)
Remove a rule from the composite rule.- Parameters:
rule- the rule to remove
-
-