/** * Creates a {@link StatelessJob} for the given state with the given processor. A stateless job simply processes the * match in the activation during execution. * * @param cRUDActivationStateEnum * @param processor * @since 2.0 */ public static <Match extends IPatternMatch> Job<Match> newStatelessJob( final CRUDActivationStateEnum cRUDActivationStateEnum, final Consumer<Match> processor) { return new StatelessJob<Match>(cRUDActivationStateEnum, processor); }
/** * Creates the default EVM Jobs which are executed as a new match appears, disappears or is updated. Can be * overridden to specify domain specific functionality * * @return */ protected Set<Job<IPatternMatch>> createDefaultProcessorJobs() { // Define default MatchProcessors Consumer<IPatternMatch> appearProcessor = this::registerAppear; Consumer<IPatternMatch> disappearProcessor = this::registerDisappear; Consumer<IPatternMatch> updateProcessor = this::registerUpdate; // Create Jobs Set<Job<IPatternMatch>> jobs = new HashSet<>(); Job<IPatternMatch> appear = new StatelessJob<IPatternMatch>(CRUDActivationStateEnum.CREATED, appearProcessor); Job<IPatternMatch> disappear = new StatelessJob<IPatternMatch>(CRUDActivationStateEnum.DELETED, disappearProcessor); Job<IPatternMatch> update = new StatelessJob<IPatternMatch>(CRUDActivationStateEnum.UPDATED, updateProcessor); jobs.add(Jobs.newEnableJob(appear)); jobs.add(Jobs.newEnableJob(disappear)); jobs.add(Jobs.newEnableJob(update)); allJobs.addAll(jobs); return jobs; }