package com.ejie.ad74a.util.constantes.modelos;

import javax.annotation.Resource;

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ad74a.util.comun.Utilidades;
import com.ejie.ad74a.util.constantes.Constantes;

@Resource
public class TipoContacto {

	private TipoContacto() {

	}
	// Longitud de campos
	/*
	 * Los JSP necesitan Strings, las comparaciones en java Integer
	 */

	// tipoContacto03 //
	public static enum tipoContacto03 {
		FISICA(0, "tipoContacto03.fisica"), //
		JURIDICA(1, "tipoContacto03.juridica");

		private tipoContacto03(Integer id, String labelDesc) {
			this.id = id;
			this.labelDesc = labelDesc;
		}

		private Integer id;
		private String labelDesc;

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

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

		public String getLabelDesc(int id) {
			String desc = "";
			for (tipoContacto03 tipoCon : tipoContacto03.values()) {
				if (tipoCon.getId() == id) {
					desc = Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N,
							tipoCon.getLabelDesc(), LocaleContextHolder.getLocale());
				}
			}
			return desc;
		}
	}

	// sexo03 //
	public static enum sexo03 {
		HOMBRE("H", "sexo03.hombre"), //
		MUJER("M", "sexo03.mujer");

		private sexo03(String id, String labelDesc) {
			this.id = id;
			this.labelDesc = labelDesc;
		}

		private String id;
		private String labelDesc;

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

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

		public String getLabelDesc(String id) {
			String desc = "";
			for (sexo03 sex : sexo03.values()) {
				if (sex.getId().equalsIgnoreCase(id)) {
					desc = Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, sex.getLabelDesc(),
							LocaleContextHolder.getLocale());
				}
			}
			return desc;
		}
	}

	// poseeLlaves03 //
	public static enum poseeLlaves03 {
		SI(1, "comun.si"), //
		NO(0, "comun.no");

		private poseeLlaves03(Integer id, String labelDesc) {
			this.id = id;
			this.labelDesc = labelDesc;
		}

		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(int id) {
			String desc = "";
			for (poseeLlaves03 posee : poseeLlaves03.values()) {
				if (posee.getId() == id) {
					desc = Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N,
							posee.getLabelDesc(), LocaleContextHolder.getLocale());
				}
			}
			return desc;
		}
	}

	// contactoInst03 //
	public static enum contactoInst03 {
		SI(1, "comun.si"), //
		NO(0, "comun.no");

		private contactoInst03(Integer id, String labelDesc) {
			this.id = id;
			this.labelDesc = labelDesc;
		}

		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(int id) {
			String desc = "";
			for (contactoInst03 cont : contactoInst03.values()) {
				if (cont.getId() == id) {
					desc = Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, cont.getLabelDesc(),
							LocaleContextHolder.getLocale());
				}
			}
			return desc;
		}
	}
}
