package com.ejie.ab63.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * Ab6311s00  
 * 
 *  
 */

public class TipoEstablecimiento implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private String idTipoEstablecimiento;
	private String descTipoEs;
	private Date fechaModificacion;
	private String nomUsuario;
	private Integer baja;
	private String descTipoEu;
	private String ordenacion;
	private String descOrdenacion;
	private String tipificacion;
	private String descTipificacion;
	private Date fechaRegistro;
	private String usuarioRegistro;
	private Date fechaUltmodificacion;
	private String usuarioUltmodificacion;
	private List<Establecimiento> listEstablecimiento = new ArrayList<Establecimiento>();
	private List<Modalidad> listModalidad = new ArrayList<Modalidad>();
	private List<Especialidad> listEspecialidad = new ArrayList<Especialidad>();
	private List<Grupo> listGrupo = new ArrayList<Grupo>();
	private List<Categoria> listCategoria = new ArrayList<Categoria>();
	private String procedimientoLeyEs;
	private String procedimientoLeyEu;
	private String procedimientoDecretoEs;
	private String procedimientoDecretoEu;

	/**
	 * Method 'Ab6311s00'.
	 */
	public TipoEstablecimiento() {
	}

	/**
	 * Method 'Ab6311s00'.
	 * 
	 * @param idTipoEstablecimiento
	 *            String
	 */
	public TipoEstablecimiento(String idTipoEstablecimiento) {
		this.idTipoEstablecimiento = idTipoEstablecimiento;
	}

	/**
	 * Method 'Ab6311s00'.
	 * 
	 * @param idTipoEstablecimiento
	 *            String
	 * @param descTipoEs
	 *            String
	 * @param fechaModificacion
	 *            Date
	 * @param nomUsuario
	 *            String
	 * @param baja
	 *            Integer
	 * @param descTipoEu
	 *            String
	 * @param ordenacion
	 *            String
	 * @param tipificacion
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param fechaUltmodificacion
	 *            Date
	 * @param usuarioUltmodificacion
	 *            String
	 */
	public TipoEstablecimiento(String idTipoEstablecimiento, String descTipoEs, Date fechaModificacion,
			String nomUsuario, Integer baja, String descTipoEu, String ordenacion, String tipificacion,
			Date fechaRegistro, String usuarioRegistro, Date fechaUltmodificacion, String usuarioUltmodificacion,
			String procedimientoLeyEs, String procedimientoLeyEu, String procedimientoDecretoEs,
			String procedimientoDecretoEu) {
		this.idTipoEstablecimiento = idTipoEstablecimiento;
		this.descTipoEs = descTipoEs;
		this.fechaModificacion = fechaModificacion;
		this.nomUsuario = nomUsuario;
		this.baja = baja;
		this.descTipoEu = descTipoEu;
		this.ordenacion = ordenacion;
		this.tipificacion = tipificacion;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.fechaUltmodificacion = fechaUltmodificacion;
		this.usuarioUltmodificacion = usuarioUltmodificacion;
		this.procedimientoLeyEs = procedimientoLeyEs;
		this.procedimientoLeyEu = procedimientoLeyEu;
		this.procedimientoDecretoEs = procedimientoDecretoEs;
		this.procedimientoDecretoEu = procedimientoDecretoEu;
	}

	/**
	 * Method 'Ab6311s00'.
	 * 
	 * @param idTipoEstablecimiento
	 *            String
	 * @param descTipoEs
	 *            String
	 * @param fechaModificacion
	 *            Date
	 * @param nomUsuario
	 *            String
	 * @param baja
	 *            Integer
	 * @param descTipoEu
	 *            String
	 * @param ordenacion
	 *            String
	 * @param tipificacion
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param fechaUltmodificacion
	 *            Date
	 * @param usuarioUltmodificacion
	 *            String
	 * @param ab6301s00s
	 *            List<Ab6301s00>
	 * @param ab6314s00s
	 *            List<Ab6314s00>
	 * @param ab6315s00s
	 *            List<Ab6315s00>
	 * @param ab6312s00s
	 *            List<Ab6312s00>
	 * @param ab6313s00s
	 *            List<Ab6313s00>
	 */
	public TipoEstablecimiento(String idTipoEstablecimiento, String descTipoEs, Date fechaModificacion,
			String nomUsuario, Integer baja, String descTipoEu, String ordenacion, String tipificacion,
			Date fechaRegistro, String usuarioRegistro, Date fechaUltmodificacion, String usuarioUltmodificacion,
			List<Establecimiento> ab6301s00s, List<Modalidad> ab6314s00s, List<Especialidad> ab6315s00s,
			List<Grupo> ab6312s00s, List<Categoria> ab6313s00s) {

		this.idTipoEstablecimiento = idTipoEstablecimiento;
		this.descTipoEs = descTipoEs;
		this.fechaModificacion = fechaModificacion;
		this.nomUsuario = nomUsuario;
		this.baja = baja;
		this.descTipoEu = descTipoEu;
		this.ordenacion = ordenacion;
		this.tipificacion = tipificacion;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.fechaUltmodificacion = fechaUltmodificacion;
		this.usuarioUltmodificacion = usuarioUltmodificacion;
		this.listEstablecimiento = ab6301s00s;
		this.listModalidad = ab6314s00s;
		this.listEspecialidad = ab6315s00s;
		this.listGrupo = ab6312s00s;
		this.listCategoria = ab6313s00s;
	}

	/**
	 * Method 'getIdTipoEstablecimiento'.
	 *
	 * @return String
	 */

	public String getIdTipoEstablecimiento() {
		return this.idTipoEstablecimiento;
	}

	/**
	 * Method 'setIdTipoEstablecimiento'.
	 *
	 * @param idTipoEstablecimiento
	 *            String
	 * @return
	 */

	public void setIdTipoEstablecimiento(String idTipoEstablecimiento) {
		this.idTipoEstablecimiento = idTipoEstablecimiento;
	}

	/**
	 * Method 'getDescTipoEs'.
	 *
	 * @return String
	 */

	public String getDescTipoEs() {
		return this.descTipoEs;
	}

	/**
	 * Method 'setDescTipoEs'.
	 *
	 * @param descTipoEs
	 *            String
	 * @return
	 */

	public void setDescTipoEs(String descTipoEs) {
		this.descTipoEs = descTipoEs;
	}

	/**
	 * Method 'getFechaModificacion'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaModificacion() {
		return this.fechaModificacion;
	}

	/**
	 * Method 'setFechaModificacion'.
	 *
	 * @param fechaModificacion
	 *            java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	/**
	 * Method 'getNomUsuario'.
	 *
	 * @return String
	 */

	public String getNomUsuario() {
		return this.nomUsuario;
	}

	/**
	 * Method 'setNomUsuario'.
	 *
	 * @param nomUsuario
	 *            String
	 * @return
	 */

	public void setNomUsuario(String nomUsuario) {
		this.nomUsuario = nomUsuario;
	}

	/**
	 * Method 'getBaja'.
	 *
	 * @return Integer
	 */

	public Integer getBaja() {
		return this.baja;
	}

	/**
	 * Method 'setBaja'.
	 *
	 * @param baja
	 *            Integer
	 * @return
	 */

	public void setBaja(Integer baja) {
		this.baja = baja;
	}

	/**
	 * Method 'getDescTipoEu'.
	 *
	 * @return String
	 */

	public String getDescTipoEu() {
		return this.descTipoEu;
	}

	/**
	 * Method 'setDescTipoEu'.
	 *
	 * @param descTipoEu
	 *            String
	 * @return
	 */

	public void setDescTipoEu(String descTipoEu) {
		this.descTipoEu = descTipoEu;
	}

	/**
	 * Method 'getOrdenacion'.
	 *
	 * @return String
	 */

	public String getOrdenacion() {
		return this.ordenacion;
	}

	/**
	 * Method 'setOrdenacion'.
	 *
	 * @param ordenacion
	 *            String
	 * @return
	 */

	public void setOrdenacion(String ordenacion) {
		this.ordenacion = ordenacion;
	}

	/**
	 * Method 'getTipificacion'.
	 *
	 * @return String
	 */

	public String getTipificacion() {
		return this.tipificacion;
	}

	/**
	 * Method 'setTipificacion'.
	 *
	 * @param tipificacion
	 *            String
	 * @return
	 */

	public void setTipificacion(String tipificacion) {
		this.tipificacion = tipificacion;
	}

	/**
	 * Method 'getFechaRegistro'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaRegistro() {
		return this.fechaRegistro;
	}

	/**
	 * Method 'setFechaRegistro'.
	 *
	 * @param fechaRegistro
	 *            java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	/**
	 * Method 'getUsuarioRegistro'.
	 *
	 * @return String
	 */

	public String getUsuarioRegistro() {
		return this.usuarioRegistro;
	}

	/**
	 * Method 'setUsuarioRegistro'.
	 *
	 * @param usuarioRegistro
	 *            String
	 * @return
	 */

	public void setUsuarioRegistro(String usuarioRegistro) {
		this.usuarioRegistro = usuarioRegistro;
	}

	/**
	 * Method 'getFechaUltmodificacion'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaUltmodificacion() {
		return this.fechaUltmodificacion;
	}

	/**
	 * Method 'setFechaUltmodificacion'.
	 *
	 * @param fechaUltmodificacion
	 *            java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaUltmodificacion(Date fechaUltmodificacion) {
		this.fechaUltmodificacion = fechaUltmodificacion;
	}

	/**
	 * Method 'getUsuarioUltmodificacion'.
	 *
	 * @return String
	 */

	public String getUsuarioUltmodificacion() {
		return this.usuarioUltmodificacion;
	}

	/**
	 * Method 'setUsuarioUltmodificacion'.
	 *
	 * @param usuarioUltmodificacion
	 *            String
	 * @return
	 */

	public void setUsuarioUltmodificacion(String usuarioUltmodificacion) {
		this.usuarioUltmodificacion = usuarioUltmodificacion;
	}

	/**
	 * Method 'getAb6301s00s'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Establecimiento> getListEstablecimiento() {
		return this.listEstablecimiento;
	}

	/**
	 * Method 'setAb6301s00s'.
	 *
	 * @param ab6301s00s
	 *            List
	 * @return
	 */
	public void setListEstablecimiento(List<Establecimiento> ab6301s00s) {
		this.listEstablecimiento = ab6301s00s;
	}

	/**
	 * Method 'getAb6314s00s'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Modalidad> getListModalidad() {
		return this.listModalidad;
	}

	/**
	 * Method 'setAb6314s00s'.
	 *
	 * @param ab6314s00s
	 *            List
	 * @return
	 */
	public void setListModalidad(List<Modalidad> ab6314s00s) {
		this.listModalidad = ab6314s00s;
	}

	/**
	 * Method 'getAb6315s00s'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Especialidad> getListEspecialidad() {
		return this.listEspecialidad;
	}

	/**
	 * Method 'setAb6315s00s'.
	 *
	 * @param ab6315s00s
	 *            List
	 * @return
	 */
	public void setListEspecialidad(List<Especialidad> ab6315s00s) {
		this.listEspecialidad = ab6315s00s;
	}

	/**
	 * Method 'getAb6312s00s'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Grupo> getListGrupo() {
		return this.listGrupo;
	}

	/**
	 * Method 'setAb6312s00s'.
	 *
	 * @param ab6312s00s
	 *            List
	 * @return
	 */
	public void setListGrupo(List<Grupo> ab6312s00s) {
		this.listGrupo = ab6312s00s;
	}

	/**
	 * Method 'getAb6313s00s'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Categoria> getListCategoria() {
		return this.listCategoria;
	}

	/**
	 * Method 'setAb6313s00s'.
	 *
	 * @param ab6313s00s
	 *            List
	 * @return
	 */
	public void setListCategoria(List<Categoria> ab6313s00s) {
		this.listCategoria = ab6313s00s;
	}

	public String getProcedimientoLeyEs() {
		return procedimientoLeyEs;
	}

	public void setProcedimientoLeyEs(String procedimientoLeyEs) {
		this.procedimientoLeyEs = procedimientoLeyEs;
	}

	public String getProcedimientoLeyEu() {
		return procedimientoLeyEu;
	}

	public void setProcedimientoLeyEu(String procedimientoLeyEu) {
		this.procedimientoLeyEu = procedimientoLeyEu;
	}

	public String getProcedimientoDecretoEs() {
		return procedimientoDecretoEs;
	}

	public void setProcedimientoDecretoEs(String procedimientoDecretoEs) {
		this.procedimientoDecretoEs = procedimientoDecretoEs;
	}

	public String getProcedimientoDecretoEu() {
		return procedimientoDecretoEu;
	}

	public void setProcedimientoDecretoEu(String procedimientoDecretoEu) {
		this.procedimientoDecretoEu = procedimientoDecretoEu;
	}

	public String getDescOrdenacion() {
		return descOrdenacion;
	}

	public void setDescOrdenacion(String descOrdenacion) {
		this.descOrdenacion = descOrdenacion;
	}

	public String getDescTipificacion() {
		return descTipificacion;
	}

	public void setDescTipificacion(String descTipificacion) {
		this.descTipificacion = descTipificacion;
	}

	/**
	 * Intended only for logging and debugging.
	 * 
	 * Here, the contents of every main field are placed into the result.
	 * 
	 * @return String
	 */
	@Override
	public String toString() {
		StringBuilder result = new StringBuilder();
		result.append(this.getClass().getName()).append(" Object { ");
		result.append(" [ idTipoEstablecimiento: ").append(this.idTipoEstablecimiento).append(" ]");
		result.append(", [ descTipoEs: ").append(this.descTipoEs).append(" ]");
		result.append(", [ fechaModificacion: ").append(this.fechaModificacion).append(" ]");
		result.append(", [ nomUsuario: ").append(this.nomUsuario).append(" ]");
		result.append(", [ baja: ").append(this.baja).append(" ]");
		result.append(", [ descTipoEu: ").append(this.descTipoEu).append(" ]");
		result.append(", [ ordenacion: ").append(this.ordenacion).append(" ]");
		result.append(", [ tipificacion: ").append(this.tipificacion).append(" ]");
		result.append(", [ fechaRegistro: ").append(this.fechaRegistro).append(" ]");
		result.append(", [ usuarioRegistro: ").append(this.usuarioRegistro).append(" ]");
		result.append(", [ fechaUltmodificacion: ").append(this.fechaUltmodificacion).append(" ]");
		result.append(", [ usuarioUltmodificacion: ").append(this.usuarioUltmodificacion).append(" ]");
		result.append("}");
		return result.toString();
	}

}
