package com.linkedin.thirdeye.anomaly.task; import com.linkedin.thirdeye.anomaly.alert.AlertTaskRunner; import com.linkedin.thirdeye.anomaly.alert.v2.AlertTaskRunnerV2; import com.linkedin.thirdeye.anomaly.detection.DetectionTaskRunner; import com.linkedin.thirdeye.anomaly.grouping.GroupingTaskRunner; import com.linkedin.thirdeye.anomaly.monitor.MonitorTaskRunner; import com.linkedin.thirdeye.anomaly.task.TaskConstants.TaskType; import com.linkedin.thirdeye.completeness.checker.DataCompletenessTaskRunner; /** * This class returns an instance of the task runner depending on the task type */ public class TaskRunnerFactory { public static TaskRunner getTaskRunnerFromTaskType(TaskType taskType) { TaskRunner taskRunner = null; switch (taskType) { case ANOMALY_DETECTION: taskRunner = new DetectionTaskRunner(); break; case MERGE: break; case MONITOR: taskRunner = new MonitorTaskRunner(); break; case ALERT: taskRunner = new AlertTaskRunner(); break; case DATA_COMPLETENESS: taskRunner = new DataCompletenessTaskRunner(); break; case ALERT2: taskRunner = new AlertTaskRunnerV2(); break; case GROUPING: taskRunner = new GroupingTaskRunner(); break; default: } return taskRunner; } }