/*
* Copyright 2021 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 java.math.BigDecimal;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang.builder.CompareToBuilder;

/**
 * DocumentoExpediente generated by UDA, 12-nov-2021 13:10:00.
 * 
 * @author UDA
 */

public class DocumentoExpediente extends Documento {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6234580704657793930L;

	private String oidDocumento;
	private String descripcionEs;
	private String descripcionEu;
	private String extension;
	private String nombreDocumento;
	private String numExpediente;
	private Date fechaDocumento;
	private String naturalezaRolId;
	private BigDecimal codEntidad;
	private String iopTraceID;
	private String estado;
	private String fechaDocumentoTimestamp;
	private String telActionName;
	private String telActionID;
	// firmas realizadas / firmas requeridas
	private Integer numFirmas;
	private Integer numFirmasReq;
	private String authorizationID;
	private String proceedingID;
	private String invocationTimestamp;
	private String invocationResultIcon;
	private String invocationResult;
	private boolean conServicioIOP;
	private String roleID;
	private String senderID;
	private List<FirmaInfo> firmantesInfo;
	private String procedureID;
	private String tipoSolicitudDesc;
	private String organoEntregado;
	private String fechaEntregado;
	private String tipoEntregado;

	/**
	 * Method 'DocumentoExpediente'.
	 */
	public DocumentoExpediente() {
		super();
	}

	/**
	 * Method 'getOidDocumento'.
	 *
	 * @return String
	 */
	public String getOidDocumento() {
		return this.oidDocumento;
	}

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

	/**
	 * Method 'getDescripcionEs'.
	 *
	 * @return String
	 */
	public String getDescripcionEs() {
		return this.descripcionEs;
	}

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

	/**
	 * Method 'getDescripcionEu'.
	 *
	 * @return String
	 */
	public String getDescripcionEu() {
		return this.descripcionEu;
	}

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

	/**
	 * Method 'getExtension'.
	 *
	 * @return String
	 */
	public String getExtension() {
		return this.extension;
	}

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

	/**
	 * Method 'getNombreDocumento'.
	 *
	 * @return String
	 */
	public String getNombreDocumento() {
		return this.nombreDocumento;
	}

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

	/**
	 * Method 'getNumExpediente'.
	 *
	 * @return String
	 */
	public String getNumExpediente() {
		return this.numExpediente;
	}

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

	/**
	 * Method 'getFechaDocumento'.
	 *
	 * @return java.util.Date
	 */
	public Date getFechaDocumento() {
		return this.fechaDocumento;
	}

	/**
	 * Method 'setFechaDocumento'.
	 *
	 * @param fechaDocumento java.util.Date
	 * @return
	 */
	public void setFechaDocumento(Date fechaDocumento) {
		this.fechaDocumento = fechaDocumento;
	}

	/**
	 * Method 'getNaturalezaRolId'.
	 *
	 * @return String
	 */
	public String getNaturalezaRolId() {
		return this.naturalezaRolId;
	}

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

	/**
	 * Method 'getCodEntidad'.
	 *
	 * @return BigDecimal
	 */
	public BigDecimal getCodEntidad() {
		return codEntidad;
	}

	/**
	 * Method 'setCodEntidad'.
	 *
	 * @param codEntidad BigDecimal
	 * @return
	 */
	public void setCodEntidad(BigDecimal codEntidad) {
		this.codEntidad = codEntidad;
	}

	/**
	 * Method 'getIopTraceID'.
	 *
	 * @return String
	 */
	public String getIopTraceID() {
		return iopTraceID;
	}

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

	/**
	 * Method 'getEstado'.
	 *
	 * @return String
	 */
	public String getEstado() {
		return estado;
	}

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

	/**
	 * Method 'getFechaDocumentoTimestamp'.
	 *
	 * @return String
	 */
	public String getFechaDocumentoTimestamp() {
		return fechaDocumentoTimestamp;
	}

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

	/**
	 * Method 'getTelActionName'.
	 *
	 * @return String
	 */
	public String getTelActionName() {
		return telActionName;
	}

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

	/**
	 * Method 'getTelActionID'.
	 *
	 * @return String
	 */
	public String getTelActionID() {
		return telActionID;
	}

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

	/**
	 * Method 'getNumFirmas'.
	 *
	 * @return Integer
	 */
	public Integer getNumFirmas() {
		return numFirmas;
	}

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

	/**
	 * Method 'getNumFirmasReq'.
	 *
	 * @return Integer
	 */
	public Integer getNumFirmasReq() {
		return numFirmasReq;
	}

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

	/**
	 * Method 'getAuthorizationID'.
	 *
	 * @return String
	 */
	public String getAuthorizationID() {
		return authorizationID;
	}

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

	/**
	 * Method 'getProceedingID'.
	 *
	 * @return String
	 */
	public String getProceedingID() {
		return proceedingID;
	}

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

	/**
	 * Method 'getInvocationTimestamp'.
	 *
	 * @return String
	 */
	public String getInvocationTimestamp() {
		return invocationTimestamp;
	}

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

	/**
	 * Method 'getInvocationResult'.
	 *
	 * @return String
	 */
	public String getInvocationResult() {
		return invocationResult;
	}

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

	/**
	 * Method 'isConServicioIOP'.
	 *
	 * @return boolean
	 */
	public boolean isConServicioIOP() {
		return conServicioIOP;
	}

	/**
	 * Method 'setConServicioIOP'.
	 *
	 * @param conServicioIOP boolean
	 * @return
	 */
	public void setConServicioIOP(boolean conServicioIOP) {
		this.conServicioIOP = conServicioIOP;
	}

	/**
	 * Method 'getRoleID'.
	 *
	 * @return String
	 */
	public String getRoleID() {
		return roleID;
	}

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

	/**
	 * Method 'getSenderID'.
	 *
	 * @return String
	 */
	public String getSenderID() {
		return senderID;
	}

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

	/**
	 * Method 'getFirmantesInfo'.
	 *
	 * @return List<FirmaInfo>
	 */
	public List<FirmaInfo> getFirmantesInfo() {
		return firmantesInfo;
	}

	/**
	 * Method 'setFirmantesInfo'.
	 *
	 * @param firmantesInfo List<FirmaInfo>
	 * @return
	 */
	public void setFirmantesInfo(List<FirmaInfo> firmantesInfo) {
		this.firmantesInfo = firmantesInfo;
	}

	/**
	 * Method 'getInvocationResultIcon'.
	 *
	 * @return String
	 */
	public String getInvocationResultIcon() {
		return invocationResultIcon;
	}

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

	/**
	 * Method 'getProcedureID'.
	 *
	 * @return String
	 */
	public String getProcedureID() {
		return procedureID;
	}

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

	/**
	 * Method 'getOrganoEntregado'.
	 *
	 * @return String
	 */
	public String getOrganoEntregado() {
		return organoEntregado;
	}

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

	/**
	 * Method 'getFechaEntregado'.
	 *
	 * @return String
	 */
	public String getFechaEntregado() {
		return fechaEntregado;
	}

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

	/**
	 * Method 'getTipoEntregado'.
	 *
	 * @return String
	 */
	public String getTipoEntregado() {
		return tipoEntregado;
	}

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

	public String getTipoSolicitudDesc() {
		return tipoSolicitudDesc;
	}

	public void setTipoSolicitudDesc(String tipoSolicitudDesc) {
		this.tipoSolicitudDesc = tipoSolicitudDesc;
	}

	/*
	 * Comparador para ordenar los DocumentosEntidad
	 */
	public static Comparator<DocumentoExpediente> ComparadorFecha = new Comparator<DocumentoExpediente>() {
		public int compare(DocumentoExpediente o1, DocumentoExpediente o2) {
			if ((o1 == null || o1.getFechaDocumento() == null) && (o2 == null || o2.getFechaDocumento() == null)) {
				return 0;
			}
			if (o1 == null || o1.getFechaDocumento() == null) {
				return -1;
			}
			if (o2 == null || o2.getFechaDocumento() == null) {
				return 1;
			}
			return o1.getFechaDocumento().compareTo(o2.getFechaDocumento());
		}
	};

	public static Comparator<DocumentoExpediente> ComparadorNombre = new Comparator<DocumentoExpediente>() {
		public int compare(DocumentoExpediente o1, DocumentoExpediente o2) {
			if ((o1 == null || o1.getNombreDocumento() == null) && (o2 == null || o2.getNombreDocumento() == null)) {
				return 0;
			}
			if (o1 == null || o1.getNombreDocumento() == null) {
				return -1;
			}
			if (o2 == null || o2.getNombreDocumento() == null) {
				return 1;
			}
			return o1.getNombreDocumento().toUpperCase().compareTo(o2.getNombreDocumento().toUpperCase());
		}
	};

	public static Comparator<DocumentoExpediente> ComparadorDescES = new Comparator<DocumentoExpediente>() {
		public int compare(DocumentoExpediente o1, DocumentoExpediente o2) {
			if ((o1 == null || o1.getDescripcionEs() == null) && (o2 == null || o2.getDescripcionEs() == null)) {
				return 0;
			}
			if (o1 == null || o1.getDescripcionEs() == null) {
				return -1;
			}
			if (o2 == null || o2.getDescripcionEs() == null) {
				return 1;
			}
			return o1.getDescripcionEs().toUpperCase().compareTo(o2.getDescripcionEs().toUpperCase());
		}
	};

	public static Comparator<DocumentoExpediente> ComparadorDescEU = new Comparator<DocumentoExpediente>() {
		public int compare(DocumentoExpediente o1, DocumentoExpediente o2) {
			if ((o1 == null || o1.getDescripcionEu() == null) && (o2 == null || o2.getDescripcionEu() == null)) {
				return 0;
			}
			if (o1 == null || o1.getDescripcionEu() == null) {
				return -1;
			}
			if (o2 == null || o2.getDescripcionEu() == null) {
				return 1;
			}
			return o1.getDescripcionEu().toUpperCase().compareTo(o2.getDescripcionEu().toUpperCase());
		}
	};

	public static Comparator<DocumentoExpediente> ComparadorFechaDescEU = new Comparator<DocumentoExpediente>() {
		public int compare(DocumentoExpediente o1, DocumentoExpediente o2) {
			if ((o1 == null || o1.getFechaDocumento() == null) && (o2 == null || o2.getFechaDocumento() == null)) {
				return 0;
			}
			if (o1 == null || o1.getFechaDocumento() == null) {
				return -1;
			}
			if (o2 == null || o2.getFechaDocumento() == null) {
				return 1;
			}
			return new CompareToBuilder().append(o2.getFechaDocumento(), o1.getFechaDocumento())
					.append(o1.getDescripcionEu().toUpperCase(), o2.getDescripcionEu().toUpperCase()).toComparison();
		}
	};

	public static Comparator<DocumentoExpediente> ComparadorFechaDescES = new Comparator<DocumentoExpediente>() {
		public int compare(DocumentoExpediente o1, DocumentoExpediente o2) {
			if ((o1 == null || o1.getFechaDocumento() == null) && (o2 == null || o2.getFechaDocumento() == null)) {
				return 0;
			}
			if (o1 == null || o1.getFechaDocumento() == null) {
				return -1;
			}
			if (o2 == null || o2.getFechaDocumento() == null) {
				return 1;
			}
			return new CompareToBuilder().append(o2.getFechaDocumento(), o1.getFechaDocumento())
					.append(o1.getDescripcionEs().toUpperCase(), o2.getDescripcionEs().toUpperCase()).toComparison();
		}
	};

}
