package eu.europeana.cloud.service.dps.utils; import eu.europeana.cloud.service.dps.PluginParameterKeys; import eu.europeana.cloud.service.dps.service.utils.validation.DpsTaskValidator; import eu.europeana.cloud.service.dps.service.utils.validation.InputDataValueType; public class DpsTaskValidatorFactory { private static final DpsTaskValidator EMPTY_VALIDATOR = new DpsTaskValidator(); private final static String XSLT_TOPOLOGY_TASK_WITH_FILE_URLS = "xslt_topology_file_urls"; private final static String XSLT_TOPOLOGY_TASK_WITH_FILE_DATASETS = "xslt_topology_dataset_urls"; private final static String IC_TOPOLOGY_TASK_WITH_FILE_URLS = "ic_topology_file_urls"; private final static String IC_TOPOLOGY_TASK_WITH_DATASETS = "ic_topology_dataset_urls"; private final static String JP2_MIME_TYPE = "image/jp2"; public static DpsTaskValidator createValidator(String taskType) { if (taskType.equalsIgnoreCase(XSLT_TOPOLOGY_TASK_WITH_FILE_URLS)) { DpsTaskValidator validator = new DpsTaskValidator("FileUrl validator for XSLT Topology") .withParameter(PluginParameterKeys.XSLT_URL) .withDataEntry(PluginParameterKeys.FILE_URLS, InputDataValueType.LINK_TO_FILE); return validator; } else if (taskType.equalsIgnoreCase(XSLT_TOPOLOGY_TASK_WITH_FILE_DATASETS)) { DpsTaskValidator validator = new DpsTaskValidator("DataSet validator for XSLT Topology") .withParameter(PluginParameterKeys.XSLT_URL) .withDataEntry(PluginParameterKeys.DATASET_URLS, InputDataValueType.LINK_TO_DATASET); return validator; } else if (taskType.equalsIgnoreCase(IC_TOPOLOGY_TASK_WITH_FILE_URLS)) { DpsTaskValidator validator = new DpsTaskValidator("FileUrl validator for IC Topology") .withParameter(PluginParameterKeys.MIME_TYPE) .withParameter(PluginParameterKeys.OUTPUT_MIME_TYPE, JP2_MIME_TYPE) .withDataEntry(PluginParameterKeys.FILE_URLS, InputDataValueType.LINK_TO_FILE); return validator; } else if (taskType.equalsIgnoreCase(IC_TOPOLOGY_TASK_WITH_DATASETS)) { DpsTaskValidator validator = new DpsTaskValidator("DataSet validator for IC Topology") .withParameter(PluginParameterKeys.MIME_TYPE) .withParameter(PluginParameterKeys.OUTPUT_MIME_TYPE, JP2_MIME_TYPE) .withDataEntry(PluginParameterKeys.DATASET_URLS, InputDataValueType.LINK_TO_DATASET); return validator; } else { return EMPTY_VALIDATOR; } } }