BatchCatalogueOptiqueIsea.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 BatchCatalogueOptiqueIsea {

			JOB_IMPORT_CATALOGUE("chargementCatalogue"),
			JOB_DESACTIVATION_GLASSES("desactivationVerres"),
			JOB_PURGE_GLASSES("purgeVerres");

	private static final Map<String, BatchCatalogueOptiqueIsea> VALUES = new HashMap<>();

	static {
		VALUES.put(JOB_IMPORT_CATALOGUE.jobName, JOB_IMPORT_CATALOGUE);
		VALUES.put(JOB_DESACTIVATION_GLASSES.jobName, JOB_DESACTIVATION_GLASSES);
		VALUES.put(JOB_PURGE_GLASSES.jobName, JOB_PURGE_GLASSES);
	}

	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, BatchCatalogueOptiqueIsea> {

		@Override
		public BatchCatalogueOptiqueIsea convert(@NonNull String source) {
			if (!VALUES.containsKey(source)){
				throw new IllegalArgumentException("Valeur incorrecte pour l'énumération BatchCatalogueOptique");
			}
			return VALUES.get(source);
		}

	}
	
}