package com.ejie.ad74a.util.constantes;

import java.util.Locale;

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ad74a.util.comun.Utilidades;
import com.ejie.x38.json.JSONArray;

/**
 * Estados de un expediente
 */

public enum ErroresExpedienteEnum {

	SOLICITANTE_NO_EXISTE(1, "error.expediente.solicitanteNoExiste"), //
	SOLICITANTE_YA_EXISTE(2, "error.expediente.solicitanteYaExiste"), //
	EXPEDIENTE_PENDIENTE(3, "error.expediente.expedientePendientes");

	/**
	 * Constructor privado.
	 * 
	 * id Integer
	 *
	 * @param id the id error expediente
	 */
	private ErroresExpedienteEnum(Integer id, String labelDesc) {
		this.labelDesc = labelDesc;
		this.id = id;
	}

	private Integer id;
	private String labelDesc;

	public Integer getId() {
		return this.id;
	}

	public String getLabelDesc() {
		return Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc,
				LocaleContextHolder.getLocale());
	}

	public String getLabelDesc(Locale locale) {
		return Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc, locale);
	}

	public static String getDesc(Integer id) {
		for (ErroresExpedienteEnum error : ErroresExpedienteEnum.values()) {
			if (error.getId().equals(id)) {
				return error.getLabelDesc();
			}
		}
		return null;
	}

	public static JSONArray getTiposError() {

		JSONArray errores = new JSONArray();

		for (ErroresExpedienteEnum error : ErroresExpedienteEnum.values()) {
			errores.put(error.getId());
		}
		return errores;

	}

}
