/** * @since 2.0 */ public EventDrivenTransformationRule(String name, IQuerySpecification<Matcher> precondition, Map<CRUDActivationStateEnum, ? extends Consumer<Match>> stateActions, ActivationLifeCycle lifeCycle, EventFilter<? super Match> filter) { this.name = name; Set<Job<Match>> jobs = new HashSet<>(); boolean createdJobAdded = false; for (Entry<CRUDActivationStateEnum, ? extends Consumer<Match>> stateAction : stateActions.entrySet()) { CRUDActivationStateEnum state = stateAction.getKey(); Consumer<Match> action = stateAction.getValue(); jobs.add(Jobs.newStatelessJob(state, action)); if (state == CRUDActivationStateEnum.CREATED) { createdJobAdded = true; } } if (!createdJobAdded) { jobs.add(Jobs.newNopJob(CRUDActivationStateEnum.CREATED)); } this.precondition = precondition; ruleSpecification = Rules.newMatcherRuleSpecification(precondition, lifeCycle, jobs, name); this.filter = filter; }