Class Rules

java.lang.Object
org.jeasy.rules.api.Rules
All Implemented Interfaces:
Iterable<Rule>

public class Rules extends Object implements Iterable<Rule>
This class encapsulates a set of rules and represents a rules namespace. Rules must have a unique name within a rules namespace.

Rules will be compared to each other based on Comparable.compareTo(Object) method, so Rule's implementations are expected to correctly implement compareTo to ensure unique rule names within a single namespace.

Author:
Mahmoud Ben Hassine ([email protected])
  • Constructor Details

    • Rules

      public Rules(Set<Rule> rules)
      Create a new Rules object.
      Parameters:
      rules - to register
    • Rules

      public Rules(Rule... rules)
      Create a new Rules object.
      Parameters:
      rules - to register
    • Rules

      public Rules(Object... rules)
      Create a new Rules object.
      Parameters:
      rules - to register
  • Method Details

    • register

      public void register(Object... rules)
      Register one or more new rules.
      Parameters:
      rules - to register, must not be null
    • register

      public void register(Rule... rules)
    • unregister

      public void unregister(Rules... rules)
    • unregister

      public void unregister(Object... rules)
      Unregister one or more rules.
      Parameters:
      rules - to unregister, must not be null
    • unregister

      public void unregister(String ruleName)
      Unregister a rule by name.
      Parameters:
      ruleName - name of the rule to unregister, must not be null
    • isEmpty

      public boolean isEmpty()
      Check if the rule set is empty.
      Returns:
      true if the rule set is empty, false otherwise
    • clear

      public void clear()
      Clear rules.
    • size

      public int size()
      Return how many rules are currently registered.
      Returns:
      the number of rules currently registered
    • iterator

      public Iterator<Rule> iterator()
      Return an iterator on the rules set. It is not intended to remove rules using this iterator.
      Specified by:
      iterator in interface Iterable<Rule>
      Returns:
      an iterator on the rules set