Class BasicRule

  • All Implemented Interfaces:
    java.lang.Comparable<Rule>, Rule
    Direct Known Subclasses:
    CompositeRule, JexlRule, MVELRule

    public class BasicRule
    extends java.lang.Object
    implements Rule
    Basic rule implementation class that provides common methods. You can extend this class and override evaluate(Facts) and execute(Facts) to provide rule conditions and actions logic.
    • Field Detail

      • name

        protected java.lang.String name
        Rule name.
      • description

        protected java.lang.String description
        Rule description.
      • priority

        protected int priority
        Rule priority.
    • Constructor Detail

      • BasicRule

        public BasicRule()
        Create a new BasicRule.
      • BasicRule

        public BasicRule​(java.lang.String name)
        Create a new BasicRule.
        Parameters:
        name - rule name
      • BasicRule

        public BasicRule​(java.lang.String name,
                         java.lang.String description)
        Create a new BasicRule.
        Parameters:
        name - rule name
        description - rule description
      • BasicRule

        public BasicRule​(java.lang.String name,
                         java.lang.String description,
                         int priority)
        Create a new BasicRule.
        Parameters:
        name - rule name
        description - rule description
        priority - rule priority
    • Method Detail

      • compareTo

        public int compareTo​(Rule rule)
        Specified by:
        compareTo in interface java.lang.Comparable<Rule>
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • evaluate

        public boolean evaluate​(Facts facts)
        This method implements the rule's condition(s). Implementations should handle any runtime exception and return true/false accordingly
        Specified by:
        evaluate in interface Rule
        Returns:
        true if the rule should be applied given the provided facts, false otherwise
      • execute

        public void execute​(Facts facts)
                     throws java.lang.Exception
        This method implements the rule's action(s).
        Specified by:
        execute in interface Rule
        Throws:
        java.lang.Exception - thrown if an exception occurs when performing action(s)
      • getDescription

        public java.lang.String getDescription()
        Description copied from interface: Rule
        Getter for rule description.
        Specified by:
        getDescription in interface Rule
        Returns:
        rule description
      • getName

        public java.lang.String getName()
        Description copied from interface: Rule
        Getter for rule name.
        Specified by:
        getName in interface Rule
        Returns:
        the rule name
      • getPriority

        public int getPriority()
        Description copied from interface: Rule
        Getter for rule priority.
        Specified by:
        getPriority in interface Rule
        Returns:
        rule priority
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • setDescription

        public void setDescription​(java.lang.String description)
      • setPriority

        public void setPriority​(int priority)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object