Class ActionExecutor


  • public class ActionExecutor
    extends Object
    Executor of ActionWorker.
    Since:
    2.1
    Author:
    Tony Chemit - dev@tchemit.fr
    • Constructor Detail

      • ActionExecutor

        public ActionExecutor()
    • Method Detail

      • addAction

        public ActionWorker<?,​?> addAction​(String actionLabel,
                                                 Runnable action)
        Add an new action to perform.
        Parameters:
        actionLabel - the name of the action to perform
        action - the action to perform
        Returns:
        the worker that will launch the action
      • addAction

        public void addAction​(ActionWorker<?,​?> worker)
        Add an new worker to perform.
        Parameters:
        worker - the worker to run
      • onActionStart

        public void onActionStart​(ActionWorker<?,​?> source)
        Hook when a action is about to start.
        Parameters:
        source - the action worker containing the action to perform
      • onActionFail

        public void onActionFail​(ActionWorker<?,​?> source)
        Hook when a action has failed.
        Parameters:
        source - the action worker containing the action to perform
      • onActionCancel

        public void onActionCancel​(ActionWorker<?,​?> source)
        Hook when a action has been canceled.
        Parameters:
        source - the action worker containing the action to perform
      • onActionEnd

        public void onActionEnd​(ActionWorker<?,​?> source)
        Hook when a action has end with no failure or cancel.
        Parameters:
        source - the action worker containing the action to perform
      • onAfterAction

        public void onAfterAction​(ActionWorker<?,​?> source)
        Hook after action is consumed.
        Parameters:
        source - the action worker containing the action to perform
      • terminatesAndWaits

        public void terminatesAndWaits()
        Ask the thread to stop.

        It will finish all incoming files (but will not accept more tasks). Note: The method does not return until all tasks are not consumed.

      • removeActionExecutorListener

        public void removeActionExecutorListener​(ActionExecutorListener listener)
      • fireActionStart

        protected void fireActionStart​(ActionWorker<?,​?> source)
      • fireActionFail

        protected void fireActionFail​(ActionWorker<?,​?> source)
      • fireActionCancel

        protected void fireActionCancel​(ActionWorker<?,​?> source)
      • fireActionEnd

        protected void fireActionEnd​(ActionWorker<?,​?> source)
      • fireActionDone

        protected void fireActionDone​(ActionWorker<?,​?> worker)
      • getNbActions

        public int getNbActions()
      • createRunnable

        public Runnable createRunnable​(Object methodContainer,
                                       String methodName,
                                       Object... arguments)
        Creates a runnable instance (via a Proxy) to a method given by his name (methodName) to invoke on methodcontainer with given arguments.

        This is a great feature to create runnable code with a real context.

        Parameters:
        methodContainer - the container of the method to invoke
        methodName - the name of the method to invoke
        arguments - parameters to pass to method to invke.
        Returns:
        the proxy instance
      • executeWorker

        protected void executeWorker​(String actionLabel,
                                     ActionWorker<?,​?> worker)
        Execute worker once it was added to tasks.

        This method permits to override how to execute it.

        Parameters:
        actionLabel - action label
        worker - worker to execute