BatchCatalogueOptique.java
package com.sintia.ffl.admin.optique.catalogue.util;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.core.convert.converter.Converter;
import org.springframework.lang.NonNull;
import java.util.HashMap;
import java.util.Map;
/**
* Énumération des batchs de chargement du catalogue commun
*/
@AllArgsConstructor
@Getter
public enum BatchCatalogueOptique {
JOB_IMPORT_FABRICANT_DISTRIBUTEUR("importFabricantDistributeur"),
JOB_ENRICH_ALL_CATALOG("enrichAllCatalogs"),
JOB_LOAD_ALL_CATALOG("loadAllCatalogs"),
JOB_PEREMPTION_VERRES("peremptionVerreJob"),
JOB_PEREMPTION_VERRES_ABSENTS("peremptionVerresAbsentsJob"),
JOB_PURGE_VERRE("purgeVerresJob");
private static final Map<String, BatchCatalogueOptique> VALUES = new HashMap<>();
static {
VALUES.put(JOB_IMPORT_FABRICANT_DISTRIBUTEUR.jobName, JOB_IMPORT_FABRICANT_DISTRIBUTEUR);
VALUES.put(JOB_ENRICH_ALL_CATALOG.jobName, JOB_ENRICH_ALL_CATALOG);
VALUES.put(JOB_LOAD_ALL_CATALOG.jobName, JOB_LOAD_ALL_CATALOG);
VALUES.put(JOB_PEREMPTION_VERRES.jobName, JOB_PEREMPTION_VERRES);
VALUES.put(JOB_PEREMPTION_VERRES_ABSENTS.jobName, JOB_PEREMPTION_VERRES_ABSENTS);
VALUES.put(JOB_PURGE_VERRE.jobName, JOB_PURGE_VERRE);
}
private final String jobName;
/** Convertisseur pour utilisation de l'énumération en tant que type de paramètre d'API **/
public static class StringToEnumConverter implements Converter<String, BatchCatalogueOptique> {
@Override
public BatchCatalogueOptique convert(@NonNull String source) {
if (!VALUES.containsKey(source)){
throw new IllegalArgumentException("Valeur incorrecte pour l'énumération BatchCatalogueOptique");
}
return VALUES.get(source);
}
}
}