Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
/**
 * Interface that discovers rule changes, notifies {@link RuleManager} of rule updates and provides
 * the initial rules.
 *
 * @param <IN> Base type of the elements appearing in the pattern.
 * @param <OUT> Type of produced elements based on found matches.
 */
@PublicEvolving
public interface RuleDiscoverer<IN, OUT> extends Closeable {
    /**
     * Discover the rule changes.
     *
     * <p>In dynamic rule changing case, this function should be a continuous process to check rule
     * updates and notify the {@link RuleManager}.
     */
    void discoverRuleChanges(RuleManager<IN, OUT> manager);

    /**
     * Returns the rules an operator should be set up with.
     *
     * @return The initial rules.
     */
    List<Rule<IN, OUT>> getInitialRules();
}

...