public enum MonitoringType {
ADHOC (ADHOC_TYPE, MONITORING_ADHOC_TEMPLATE, MONITORING_ADHOC_SUBJECT ),
SCHEDULER (SCHEDULER_TYPE, MONITORING_ALERT_TEMPLATE, MONITORING_ALERT_SUBJECT),
LESS_PRS (LESS_PRS_TYPE, MONITORING_LESS_PRS_TEMPLATE, MONITORING_DAILY_ALERT_SUBJECT);
private final String monitorType;
private final String emailTemplate;
private final String emailSubject;
MonitoringType(String monitorType, String emailTemplate, String emailSubject) {
this.monitorType = monitorType;
this.emailTemplate = emailTemplate;
this.emailSubject = emailSubject;
}
public String getMonitorType() {
return monitorType;
}
public String getEmailTemplate() {
return emailTemplate;
}
public String getEmailSubject() {
return emailSubject;
}
public static MonitoringType fromMonitorType(String monitorType) {
if (monitorType == null || monitorType.isEmpty() || monitorType.isBlank()) {
throw new InvalidMonitoringType(ExceptionConstant.INVALID_MONITORING_TYPE);
}
for (MonitoringType monitoringEmailType : MonitoringType.values()) {
if (monitoringEmailType.getMonitorType().equals(monitorType)) {
return monitoringEmailType;
}
}
throw new InvalidMonitoringType(ExceptionConstant.INVALID_MONITORING_TYPE);
}
}