┌────────────────────────────────────────────────┐ ┌────────────────────────────────────────────────────────────────────────┐ │Main │ ┌─────────────────────────────────────────────────────────┐ ┌─────┐ │MonitorFactory │ ├────────────────────────────────────────────────┤ │ProcessorFactory │ │Event│ ├────────────────────────────────────────────────────────────────────────┤ │+ init(string monitorType, string submitterType)│ ├─────────────────────────────────────────────────────────┤ ├─────┤ │{static} createMonitor(string monitorType, Processor processor): Monitor│ │+ startMonitoring() │ │{static} createProcessor(string ProcessorType): Processor│ └─────┘ └────────────────────────────────────────────────────────────────────────┘ └────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────┘ | | | ┌──────────────────────────────────────┐ ┌─────────────────────────────────┐ | │Monitor │ │Processor │ ┌─────────┐ ├──────────────────────────────────────┤ ├─────────────────────────────────┤ │FileEvent│ │+ {abstract} Init(processor Processor)│ │+ {abstract} process(Event event)│ ├─────────┤ │+ {abstract} startMonitoring() │ └─────────────────────────────────┘ └─────────┘ └──────────────────────────────────────┘ | | | | ┌─────────────────────────────────┐ | │GalaxyDatasetSubmitter │ | ├─────────────────────────────────┤ ┌───────────────────────────┐ │string galaxy_url │ │WatchDogMonitor │ │string galaxy_api_key │ ├───────────────────────────┤ │string input_dataset_local_path │ │+ Init(processor Processor)│ │dict inputs │ │+ startMonitoring() │ │string output_local_path │ └───────────────────────────┘ │ │ | │+ {abstract} process(Event event)│ | └─────────────────────────────────┘ | | ┌─────────────────────────────────────────────┐ ┌──────────────────────────────┐ ┌──────────────────────────┐ │NexusFileCreatedMonitor │ │GalaxyWorkflowDatasetSubmitter│ │GalaxyToolDatasetSubmitter│ ├─────────────────────────────────────────────┤ ├──────────────────────────────┤ ├──────────────────────────┤ │+ Init(processor Processor) │ │string workflow_name │ │string tool_name │ │+ startMonitoring() │ │string workflow_local_path │ │ │ │- on_created(watchdog.events.FileSystemEvent)│ │ │ │+ process(Event event) │ └─────────────────────────────────────────────┘ │+ process(Event event) │ └──────────────────────────┘ └──────────────────────────────┘