/*
* Copyright 2011 E.J.I.E., S.A.
*
* Licencia con arreglo a la EUPL, Versión 1.1 exclusivamente (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en
*
* http://ec.europa.eu/idabc/eupl.html
*
* Salvo cuando lo exija la legislación aplicable o se acuerde por escrito,
* el programa distribuido con arreglo a la Licencia se distribuye «TAL CUAL»,
* SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ni expresas ni implícitas.
* Véase la Licencia en el idioma concreto que rige los permisos y limitaciones
* que establece la Licencia.
*/
package com.ejie.ad74a.model;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import com.ejie.ad74a.util.constantes.ProcedimientosEnum;
import com.ejie.ad74a.util.constantes.TareasEnum;

/**
 * Bean contenedor de las propiedades que utiliza el componente table.
 * 
 * @author UDA
 *
 * @param <T> Tipo de bean que se va a representar en el table.
 */
@XmlRootElement(name = "DatosTarea")
public class DatosTareaEstudio extends DatosTarea implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3821865593385260736L;
	private String idProcedimiento00;

	private Long situacioneFinalTarea;
	private Integer resultadoEstudio;

	private TramitesExpediente tramitesExpediente;

	// Se recuperan los documentos para poder mandarlos en el filtrado.
	private String documentosAportados = null;

	/**
	 * Constructor.
	 */

	public DatosTareaEstudio() {
		super(TareasEnum.ESTUDIO.getId());
	}

	public DatosTareaEstudio(String idProcedimiento00) {
		super(TareasEnum.ESTUDIO.getId());
		this.idProcedimiento00 = idProcedimiento00;

	}

	@XmlElement(name = "idProcedimiento00", nillable = true)
	public String getIdProcedimiento00() {
		return idProcedimiento00;
	}

	@XmlElement(name = "situacioneFinalTarea", nillable = true)
	public Long getSituacioneFinalTarea() {
		return situacioneFinalTarea;
	}

	public void setSituacioneFinalTarea(Long situacioneFinalTarea) {
		this.situacioneFinalTarea = situacioneFinalTarea;
	}

	@XmlElement(name = "resultadoEstudio", nillable = true)
	public Integer getResultadoEstudio() {
		return resultadoEstudio;
	}

	public void setResultadoEstudio(Integer resultadoEstudio) {
		this.resultadoEstudio = resultadoEstudio;
	}

	public static DatosTareaEstudio getNewDatosTareaEstudioByIdProcedimiento(ProcedimientosEnum proc) {
		if (ProcedimientosEnum.ALTA.getId().equalsIgnoreCase(proc.getId())) {
			return new DatosTareaEstudioAlta();
		} else if (ProcedimientosEnum.BAJA.getId().equalsIgnoreCase(proc.getId())) {
			return new DatosTareaEstudioBaja();
		} else if (ProcedimientosEnum.MODIFICACION.getId().equalsIgnoreCase(proc.getId())) {
			return new DatosTareaEstudioModDireccion();
		} else if (ProcedimientosEnum.REVISION_PRECIO.getId().equalsIgnoreCase(proc.getId())) {
			return new DatosTareaEstudioRevision();
		} else if (ProcedimientosEnum.INFORME.getId().equalsIgnoreCase(proc.getId())) {
			return new DatosTareaEstudioInforme();
		}
		return new DatosTareaEstudio();

	}

	@XmlElement(name = "tramitesExpediente", nillable = true)
	public TramitesExpediente getTramitesExpediente() {
		return tramitesExpediente;
	}

	public void setTramitesExpediente(TramitesExpediente tramitesExpediente) {
		this.tramitesExpediente = tramitesExpediente;
	}

	/**
	 * Method 'getDocumentosAportados'.
	 *
	 * @return String
	 */
	@XmlElement(name = "documentosAportados", nillable = true)
	public String getDocumentosAportados() {
		return documentosAportados;
	}

	/**
	 * Method 'setDocumentosAportados'.
	 *
	 * @param documentosAportados String
	 * @return
	 */
	public void setDocumentosAportados(String documentosAportados) {
		this.documentosAportados = documentosAportados;
	}

}