Interface RuleEvaluationService

All Known Implementing Classes:
SpelRuleEvaluationService

public interface RuleEvaluationService

Intended to provide a means to evaluate rule builder expressions written in some expression language.

Author:
Nathan Moore (nathanmoore).
  • Method Details

    • evaluateRule

      boolean evaluateRule(@Nullable String rule, @NonNull Object rootObject, @NonNull ExpressionContext expressionContext)

      Uses the configured expression parser to evaluate the rule against the root object. If the rule is null or blank, this method returns true.

      Parameters:
      rule - String representation of an expression
      rootObject - Object to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      whether the object matches the rule
      See Also:
    • anyMatch

      boolean anyMatch(@NonNull Collection<String> rules, @NonNull Object rootObject, @NonNull ExpressionContext expressionContext)

      Use to determine if the object matches any rule provided.

      Parameters:
      rules - String representations of expressions
      rootObject - Object to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      whether the object matches any rules
      See Also:
    • allMatch

      boolean allMatch(@NonNull Collection<String> rules, @NonNull Object rootObject, @NonNull ExpressionContext expressionContext)

      Use to determine if the object matches all rules provided.

      Parameters:
      rules - String representations of expressions
      rootObject - Object to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      whether the object matches all rules
      See Also:
    • noneMatch

      boolean noneMatch(@NonNull Collection<String> rules, @NonNull Object rootObject, @NonNull ExpressionContext expressionContext)

      Use to determine if the object matches no provided rule.

      Parameters:
      rules - String representations of expressions
      rootObject - Object to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      whether the object matches no rules
      See Also:
    • findFirst

      <T> Optional<T> findFirst(@NonNull Collection<String> rules, @NonNull Collection<T> rootObjects, @NonNull ExpressionContext expressionContext)

      Use to find the first object that matches the rules. ExpressionContext.isMatchAnyRule() should be set to determine if returned object must match any or all rules.

      Parameters:
      rules - String representations of expressions
      rootObjects - Objects to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      the first object provided that matches the rules
      See Also:
    • findAny

      <T> Optional<T> findAny(@NonNull Collection<String> rules, @NonNull Collection<T> rootObjects, @NonNull ExpressionContext expressionContext)

      Use to find an object that matches the rules. ExpressionContext.isMatchAnyRule() should be set to determine if returned object must match any or all rules.

      Parameters:
      rules - String representations of expressions
      rootObjects - Objects to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      an object provided that matches the rules
      See Also:
    • findAll

      <T> Iterable<T> findAll(@NonNull Collection<String> rules, @NonNull Collection<T> rootObjects, @NonNull ExpressionContext expressionContext)

      Use to find all objects matching the rules provided. ExpressionContext.isMatchAnyRule() should be set to determine if returned objects must match any or all rules.

      Parameters:
      rules - String representations of expressions
      rootObjects - Objects to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      all objects provided that match rules
      See Also:
    • findAnyN

      <T> Iterable<T> findAnyN(@NonNull Collection<String> rules, @NonNull Collection<T> rootObjects, @NonNull ExpressionContext expressionContext)

      Use to find a subset of all objects matching the rules provided. The subset will consist of any 'n' objects found with 'n' being determined by ExpressionContext.getLimit(). ExpressionContext.isMatchAnyRule() should be set to determine if returned objects must match any or all rules.

      Parameters:
      rules - String representations of expressions
      rootObjects - Objects to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      a subset of 'n' objects matching the rules
      See Also:
    • findFirstN

      <T> Iterable<T> findFirstN(@NonNull Collection<String> rules, @NonNull Collection<T> rootObjects, @NonNull ExpressionContext expressionContext)

      Use to find a subset of all objects matching the rules provided. The subset will consist of the first 'n' objects found with 'n' being determined by ExpressionContext.getLimit(). ExpressionContext.isMatchAnyRule() should be set to determine if returned objects must match any or all rules.

      Parameters:
      rules - String representations of expressions
      rootObjects - Objects to evaluate the rule against
      expressionContext - Relevant information required to evaluate an expression or group of expressions
      Returns:
      a subset of the first 'n' objects matching the rules
      See Also: