001package arez;
002
003import grim.annotations.OmitType;
004import javax.annotation.Nonnull;
005
006/**
007 * An interceptor that intercepts the execution of tasks.
008 * This enables downstream the injection of logic before and after tasks have been scheduled.
009 */
010@OmitType( unless = "arez.enable_task_interceptor" )
011@FunctionalInterface
012public interface TaskInterceptor
013{
014  /**
015   * Method invoked to execute tasks.
016   *
017   * @param executeAction action to invoke to execute tasks.
018   */
019  void executeTasks( @Nonnull SafeProcedure executeAction );
020}