Class RuleEngine

java.lang.Object
com.helixframework.rules.RuleEngine

public class RuleEngine extends Object
Rule engine that executes collections of rules.
  • Constructor Details

    • RuleEngine

      public RuleEngine(Rule... rules)
      Creates a new instance of RuleEngine.
      Parameters:
      rules - rules collection
    • RuleEngine

      public RuleEngine(String name, Rule... rules)
      Creates a new instance of RuleEngine.
      Parameters:
      name - rule engine name
      rules - rules collection
    • RuleEngine

      public RuleEngine(Set<Rule> rules)
      Creates a new instance of RuleEngine.
      Parameters:
      rules - rules collection
    • RuleEngine

      public RuleEngine(String name, Set<Rule> rules)
      Creates a new instance of RuleEngine.
      Parameters:
      name - rule engine name
      rules - rules collection
    • RuleEngine

      public RuleEngine(Set<Rule> rules, Predicate<Rule>... filters)
      Creates a new instance of RuleEngine that filters the supplied rule set by the specified filter before executing the rules.
      Parameters:
      rules - rules collection
      filters - filter to select which rules to execute
    • RuleEngine

      public RuleEngine(String name, Set<Rule> rules, Predicate<Rule>... filters)
      Creates a new instance of RuleEngine that filters the supplied rule set by the specified filter before executing the rules.
      Parameters:
      name - rule engine name
      rules - rules collection
      filters - filter to select which rules to execute
    • RuleEngine

      public RuleEngine(String name, Set<Rule> rules, Map<String,Object> tags)
      Creates a new instance of RuleEngine.
      Parameters:
      name - rule engine name
      rules - rules collection
      tags - rule engine tags
  • Method Details

    • execute

      public void execute(RuleContext<?> ctx)
      Executes the all rules against the supplied rule context.
      Parameters:
      ctx - rule context
    • execute

      public void execute(RuleContext<?> ctx, String ruleName)
      Executes a specific rule, by name, and its dependent rules on the supplied rule context.
      Parameters:
      ctx - rule context
      ruleName - name of rule to execute
    • executeMap

      public Map<String,Object> executeMap(RuleContext<?> ctx)
      Executes all rules against the supplied context and returns a map with the result of each rule execution.
      Parameters:
      ctx - rule context
      Returns:
      rule result
    • executeMap

      public Map<String,Object> executeMap(RuleContext<?> ctx, String ruleName)
      Executes a specific rule, by name, and its dependent rules on the supplied rule context and returns a map with the resule of each rule execution.
      Parameters:
      ctx - rule context
      ruleName - name of rule to execute
      Returns:
      a map of keys and results
    • executeBoolean

      public <T> Boolean executeBoolean(RuleContext<T> ctx)
      Executes a collection of boolean rules and returns the boolean result of all rules. (i.e. if all rules evaluate true then return true; otherwise false)
      Type Parameters:
      T - rule context type
      Parameters:
      ctx - rule context
      Returns:
      true if all rules evaluate true; otherwise false
    • executeBoolean

      public <T> Boolean executeBoolean(RuleContext<T> ctx, String ruleName)
      Executes a boolean rule and returns the boolean result.
      Type Parameters:
      T - rule context type
      Parameters:
      ctx - rule context
      ruleName - name of rule to execute
      Returns:
      true if all rules evaluate true; otherwise false
    • addRule

      public void addRule(Rule rule)
      Add a rule to the rules engine.
      Parameters:
      rule - rule to add
    • addRules

      public void addRules(Rule... rules)
      Add rules to the rules engine.
      Parameters:
      rules - rules to add
    • addRules

      public void addRules(Set<Rule> rules)
      Add rules to the rules engine.
      Parameters:
      rules - rules to add
    • getRules

      public Set<Rule> getRules()
      Gets an unmodifiable collection of the rules.
      Returns:
      an unmodifiable collection of rules
    • getTag

      public <T> Optional<T> getTag(String name, Class<T> tagType)
      Gets a tag on the rules engine.
      Type Parameters:
      T - tag type
      Parameters:
      name - tag name
      tagType - tag type
      Returns:
      optional tag value
    • getName

      public String getName()
      Gets the name of the rules engine.
      Returns:
      rules engine name
    • getTags

      public Map<String,Object> getTags()
      Gets the tags on the rules engine.
      Returns:
      tags