package com.ejie.ab61.model.plantillas;

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;

/**
 * TiposPlantilla  
 * 
 *  
 */

public class TiposPlantilla implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idTipoPlantilla;
	private String descripcionCastellano;
	private String descripcionEuskera;
	private Date fechaRegistro;
	private String usuarioRegistro;
	private List<Plantillas> plantillases = new ArrayList<Plantillas>();
	private String taskId;
	private String proceedingId;
	private String taskType;
	private String title;
	private String documentroleId;
	private String documentroleNameCas;
	private String documentroleNameEus;
	private Date fechaUltmodificacion;
	private String usuarioUltmodificacion;
	private Integer tiposDocumento;
	private String idsProcedimientos;

	/**
	 * Method 'TiposPlantilla'.
	 */
	public TiposPlantilla() {
	}

	/**
	 * Method 'TiposPlantilla'.
	 * 
	 * @param idTipoPlantilla
	 *            Long
	 */
	public TiposPlantilla(Long idTipoPlantilla) {
		this.idTipoPlantilla = idTipoPlantilla;
	}

	/**
	 * Method 'TiposPlantilla'.
	 * 
	 * @param idTipoPlantilla
	 *            Long
	 * @param descripcionCastellano
	 *            String
	 * @param descripcionEuskera
	 *            String
	 * @param taskId
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 */
	public TiposPlantilla(Long idTipoPlantilla, String descripcionCastellano, String descripcionEuskera) {
		this.idTipoPlantilla = idTipoPlantilla;
		this.descripcionCastellano = descripcionCastellano;
		this.descripcionEuskera = descripcionEuskera;
	}

	/**
	 * Method 'TiposPlantilla'.
	 * 
	 * @param idTipoPlantilla
	 *            Long
	 * @param descripcionCastellano
	 *            String
	 * @param descripcionEuskera
	 *            String
	 * @param taskId
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 */
	public TiposPlantilla(Long idTipoPlantilla, String descripcionCastellano, String descripcionEuskera, String taskId,
			Date fechaRegistro, String usuarioRegistro) {
		this.idTipoPlantilla = idTipoPlantilla;
		this.descripcionCastellano = descripcionCastellano;
		this.descripcionEuskera = descripcionEuskera;
		this.taskId = taskId;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
	}

	/**
	 * Method 'TiposPlantilla'.
	 * 
	 * @param idTipoPlantilla
	 *            Long
	 * @param descripcionCastellano
	 *            String
	 */
	public TiposPlantilla(Long idTipoPlantilla, String descripcionCastellano) {
		this.idTipoPlantilla = idTipoPlantilla;
		this.descripcionCastellano = descripcionCastellano;
	}

	/**
	 * Method 'TiposPlantilla'.
	 * 
	 * @param idTipoPlantilla
	 *            Long
	 * @param descripcionCastellano
	 *            String
	 * @param descripcionEuskera
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param plantillases
	 *            List<Plantillas>
	 */
	public TiposPlantilla(Long idTipoPlantilla, String descripcionCastellano, String descripcionEuskera,
			Date fechaRegistro, String usuarioRegistro, List<Plantillas> plantillases) {

		this.idTipoPlantilla = idTipoPlantilla;
		this.descripcionCastellano = descripcionCastellano;
		this.descripcionEuskera = descripcionEuskera;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.plantillases = plantillases;
	}

	/**
	 * Method 'TiposPlantilla'.
	 * 
	 * @param idTipoPlantilla
	 *            Long
	 * @param descripcionCastellano
	 *            String
	 * @param descripcionEuskera
	 *            String
	 * @param taskId
	 *            String
	 * @param proceedingId
	 *            String
	 * @param taskType
	 *            String
	 * @param title
	 *            String
	 * @param author
	 *            String
	 * @param documentroleId
	 *            String
	 * @param documentroleNameCas
	 *            String
	 * @param documentroleNameEus
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param fechaUltmodificacion
	 *            Date
	 * @param usuarioUltmodificacion
	 *            String
	 */
	public TiposPlantilla(Long idTipoPlantilla, String descripcionCastellano, String descripcionEuskera, String taskId,
			String proceedingId, String taskType, String title, String documentroleId, String documentroleNameCas,
			String documentroleNameEus, Integer tiposDocumento, Date fechaRegistro, String usuarioRegistro,
			Date fechaUltmodificacion, String usuarioUltmodificacion) {

		this.idTipoPlantilla = idTipoPlantilla;
		this.descripcionCastellano = descripcionCastellano;
		this.descripcionEuskera = descripcionEuskera;
		this.taskId = taskId;
		this.proceedingId = proceedingId;
		this.taskType = taskType;
		this.title = title;
		this.documentroleId = documentroleId;
		this.documentroleNameCas = documentroleNameCas;
		this.documentroleNameEus = documentroleNameEus;
		this.tiposDocumento = tiposDocumento;
		this.fechaRegistro = fechaRegistro;
		this.usuarioRegistro = usuarioRegistro;
		this.fechaUltmodificacion = fechaUltmodificacion;
		this.usuarioUltmodificacion = usuarioUltmodificacion;
	}

	/**
	 * Method 'getIdTipoPlantilla'.
	 *
	 * @return Long
	 */

	public Long getIdTipoPlantilla() {
		return this.idTipoPlantilla;
	}

	/**
	 * Method 'setIdTipoPlantilla'.
	 *
	 * @param idTipoPlantilla
	 *            Long
	 * @return
	 */

	public void setIdTipoPlantilla(Long idTipoPlantilla) {
		this.idTipoPlantilla = idTipoPlantilla;
	}

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

	public String getDescripcionCastellano() {
		return this.descripcionCastellano;
	}

	/**
	 * Method 'setDescripcionCastellano'.
	 *
	 * @param descripcionCastellano
	 *            String
	 * @return
	 */

	public void setDescripcionCastellano(String descripcionCastellano) {
		this.descripcionCastellano = descripcionCastellano;
	}

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

	public String getDescripcionEuskera() {
		return this.descripcionEuskera;
	}

	/**
	 * Method 'setDescripcionEuskera'.
	 *
	 * @param descripcionEuskera
	 *            String
	 * @return
	 */

	public void setDescripcionEuskera(String descripcionEuskera) {
		this.descripcionEuskera = descripcionEuskera;
	}

	/**
	 * 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 'getPlantillases'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Plantillas> getPlantillases() {
		return this.plantillases;
	}

	/**
	 * Method 'setPlantillases'.
	 *
	 * @param plantillases
	 *            List
	 * @return
	 */
	public void setPlantillases(List<Plantillas> plantillases) {
		this.plantillases = plantillases;
	}

	/**
	 * @return the taskId
	 */
	public String getTaskId() {
		return taskId;
	}

	/**
	 * @param taskId
	 *            the taskId to set
	 */
	public void setTaskId(String taskId) {
		this.taskId = taskId;
	}

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

	public String getProceedingId() {
		return this.proceedingId;
	}

	/**
	 * Method 'setProceedingId'.
	 *
	 * @param proceedingId
	 *            String
	 * @return
	 */

	public void setProceedingId(String proceedingId) {
		this.proceedingId = proceedingId;
	}

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

	public String getTaskType() {
		return this.taskType;
	}

	/**
	 * Method 'setTaskType'.
	 *
	 * @param taskType
	 *            String
	 * @return
	 */

	public void setTaskType(String taskType) {
		this.taskType = taskType;
	}

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

	public String getTitle() {
		return this.title;
	}

	/**
	 * Method 'setTitle'.
	 *
	 * @param title
	 *            String
	 * @return
	 */

	public void setTitle(String title) {
		this.title = title;
	}

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

	public String getDocumentroleId() {
		return this.documentroleId;
	}

	/**
	 * Method 'setDocumentroleId'.
	 *
	 * @param documentroleId
	 *            String
	 * @return
	 */

	public void setDocumentroleId(String documentroleId) {
		this.documentroleId = documentroleId;
	}

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

	public String getDocumentroleNameCas() {
		return this.documentroleNameCas;
	}

	/**
	 * Method 'setDocumentroleNameCas'.
	 *
	 * @param documentroleNameCas
	 *            String
	 * @return
	 */

	public void setDocumentroleNameCas(String documentroleNameCas) {
		this.documentroleNameCas = documentroleNameCas;
	}

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

	public String getDocumentroleNameEus() {
		return this.documentroleNameEus;
	}

	/**
	 * Method 'setDocumentroleNameEus'.
	 *
	 * @param documentroleNameEus
	 *            String
	 * @return
	 */

	public void setDocumentroleNameEus(String documentroleNameEus) {
		this.documentroleNameEus = documentroleNameEus;
	}

	/**
	 * 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 'getTiposDocumento'
	 * 
	 * @return Integer
	 */
	public Integer getTiposDocumento() {
		return this.tiposDocumento;
	}

	/**
	 * Method 'setTiposDocumento'
	 * 
	 * @param tiposDocumento
	 *            Integer
	 * @return
	 */
	public void setTiposDocumento(Integer tiposDocumento) {
		this.tiposDocumento = tiposDocumento;
	}

	/**
	 * Method 'getIdsProcedimientos'
	 * 
	 * @return String
	 */
	public String getIdsProcedimientos() {
		return this.idsProcedimientos;
	}

	/**
	 * Method 'setIdsProcedimientos'
	 * 
	 * @param listaProcedimientos
	 *            String
	 * @return
	 */
	public void setIdsProcedimientos(String idsProcedimientos) {
		this.idsProcedimientos = idsProcedimientos;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "TiposPlantilla [idTipoPlantilla=" + idTipoPlantilla + ", descripcionCastellano=" + descripcionCastellano
				+ ", descripcionEuskera=" + descripcionEuskera + ", fechaRegistro=" + fechaRegistro
				+ ", usuarioRegistro=" + usuarioRegistro + ", plantillases=" + plantillases + ", taskId=" + taskId
				+ ", proceedingId=" + proceedingId + ", taskType=" + taskType + ", title=" + title + ", documentroleId="
				+ documentroleId + ", documentroleNameCas=" + documentroleNameCas + ", documentroleNameEus="
				+ documentroleNameEus + ", fechaUltmodificacion=" + fechaUltmodificacion + ", usuarioUltmodificacion="
				+ usuarioUltmodificacion + "]";
	}
}
