classDiagram %% %% nextflow.executor %% ExecutorFactory --> Executor : getExecutor class Executor { name : String monitor : TaskMonitor } Executor --* TaskMonitor Executor --> TaskHandler : submit TaskMonitor <|-- TaskPollingMonitor class TaskPollingMonitor { capacity : int submitRateLimit : RateLimiter pollIntervalMillis : long dumpInterval : Duration } TaskPollingMonitor <|-- LocalPollingMonitor class LocalPollingMonitor { maxCpus : int maxMemory : long } Executor <|-- AbstractGridExecutor Executor <|-- LocalExecutor %% Executor <|-- NopeExecutor %% AbstractGridExecutor <|-- CondorExecutor %% AbstractGridExecutor <|-- HyperQueueExecutor %% AbstractGridExecutor <|-- LsfExecutor %% AbstractGridExecutor <|-- MoabExecutor %% AbstractGridExecutor <|-- NqsiiExecutor %% AbstractGridExecutor <|-- OarExecutor %% AbstractGridExecutor <|-- PbsExecutor %% AbstractGridExecutor <|-- SgeExecutor %% AbstractGridExecutor <|-- SlurmExecutor %% PbsExecutor <|-- PbsProExecutor %% SgeExecutor <|-- CrgExecutor %% TaskHandler <|-- CachedTaskHandler TaskHandler <|-- GridTaskHandler TaskHandler <|-- LocalTaskHandler TaskHandler <|-- NativeTaskHandler %% TaskHandler <|-- NopeTaskHandler %% TaskHandler <|-- StoredTaskHandler class BashWrapperBuilder { bean : TaskBean copyStrategy : ScriptFileCopyStrategy } BashWrapperBuilder --* TaskBean BashWrapperBuilder --* ScriptFileCopyStrategy ScriptFileCopyStrategy <|-- SimpleFileCopyStrategy class SimpleFileCopyStrategy { stageinMode : String stageoutMode : String targetDir : Path workDir : Path }