org.eclipse.viatra.integration.mwe2.eventdriven

## Class MWE2BaseControllableScheduler

- java.lang.Object
- - org.eclipse.viatra.transformation.evm.api.Scheduler
  - - org.eclipse.viatra.integration.mwe2.eventdriven.MWE2BaseControllableScheduler

- All Implemented Interfaces:
    IController

      public class MWE2BaseControllableScheduler
      extends Scheduler
      implements IController

  An EVM scheduler that enables the workflow to explicitly control the execution of a fine-grained event-driven transformation. As it implements the IController interface, its usage is similar to the MWE2ControllableExecutor. Internally, however, this solution uses a custom Scheduler object instead of an Executor. Using a custom Scheduler means, that the original VIATRA EVM scheduler will be overridden.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `MWE2BaseControllableScheduler.MWEBaseControllableSchedulerFactory` ISchedulerFactory implementation that enables the instantiation of MWE2BaseControllableScheduler objects.

    - ### Nested classes/interfaces inherited from class org.eclipse.viatra.transformation.evm.api.Scheduler

      `Scheduler.ISchedulerFactory`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ISchedulerController<MWE2BaseControllableScheduler>` | `controller`
    `protected boolean` | `finished`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `MWE2BaseControllableScheduler(ScheduledExecution executor, ISchedulerController<MWE2BaseControllableScheduler> controller)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isFinished()` If the Step has finished it returns true
    `void` | `run()` Starts the execution of the given step

    - ### Methods inherited from class org.eclipse.viatra.transformation.evm.api.Scheduler

      `dispose, getExecution, schedule`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### controller

          protected ISchedulerController<MWE2BaseControllableScheduler> controller

    - #### finished

          protected boolean finished

  - ### Constructor Detail

    - #### MWE2BaseControllableScheduler

          protected MWE2BaseControllableScheduler(ScheduledExecution executor,
                                                  ISchedulerController<MWE2BaseControllableScheduler> controller)

  - ### Method Detail

    - #### isFinished

          public boolean isFinished()

      Description copied from interface: `IController`
      If the Step has finished it returns true
      Specified by:
        `isFinished` in interface `IController`

    - #### run

          public void run()

      Description copied from interface: `IController`
      Starts the execution of the given step
      Specified by:
        `run` in interface `IController`