package com.ejie.ab39a.constantes;

/**
 * Indica los tipos de entidad que existen
 * 
 *  
 * 
 */
public enum TipoEntidadEnum {
	HERRI_ADMINISTRAZIOA(1, "herriAdmin"), ENPRESA_PRIBATUA(2, "enpresaPribatua"), ENTE_PUBLIKOA(3, "entePubl");

	private long id;
	private String descripcion;

	/**
	 * Constrcutor de la clase
	 * 
	 * @param id
	 *            long
	 * @param descripcion
	 *            String
	 */
	private TipoEntidadEnum(long id, String descripcion) {
		this.id = id;
		this.descripcion = descripcion;
	}

	/**
	 * Indica el tipo de entidad
	 * 
	 * @return long
	 */
	public long getId() {
		return id;
	}

	/**
	 * 
	 * @return String
	 */
	public String getIdStr() {
		return (String.valueOf(this.getId()));
	}

	/**
	 * Obtiene la etiqueta de la descripción del tipo de entidad
	 * 
	 * @return String
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * Obtiene por ID
	 * 
	 * @param id
	 *            long id TipoEntidadEnum
	 * @return TipoEntidadEnum objeto TipoEntidadEnum con el id
	 */
	public static TipoEntidadEnum getById(long id) {

		for (TipoEntidadEnum tipoEntidad : TipoEntidadEnum.values()) {

			if (tipoEntidad.getId() == id) {
				return tipoEntidad;
			}
		} // fin del for

		return null;
	}

	/**
	 * Obtiene por descripción
	 * 
	 * @param nombre
	 *            String nombre
	 * @return TipoEntidadEnum objeto TipoEntidadEnum con la descripcion
	 */
	public static TipoEntidadEnum getByName(String nombre) {

		for (TipoEntidadEnum tipoEntidad : TipoEntidadEnum.values()) {

			if (tipoEntidad.name().equals(nombre)) {
				return tipoEntidad;
			}
		} // fin del for

		return null;
	}

}