Folio.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.licensis.notaire.negocio;
import com.licensis.notaire.dto.DtoFolio;
import com.licensis.notaire.dto.DtoPersona;
import com.licensis.notaire.jpa.ConstantesPersistencia;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import jakarta.persistence.Basic;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.NamedQueries;
import jakarta.persistence.NamedQuery;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlTransient;
/**
* <p>
* REGLA DE NEGOCIO:
* <p>
*
* <lo> <li> Estados posibles de un Folio: -Nuevo -Utilizado -Errose </li> </lo>
*
*
* @author Tefi
*/
@Entity
@Table(name = "folios")
@XmlRootElement
@NamedQueries(
{
@NamedQuery(name = "Folio.findAll", query = "SELECT f FROM Folio f"),
@NamedQuery(name = "Folio.findByIdFolio", query = "SELECT f FROM Folio f WHERE f.idFolio = :idFolio"),
@NamedQuery(name = "Folio.findByNumero", query = "SELECT f FROM Folio f WHERE f.numero = :numero"),
@NamedQuery(name = "Folio.findByAnio", query = "SELECT f FROM Folio f WHERE f.anio = :anio"),
@NamedQuery(name = "Folio.findByAnioAndRegistro", query = "SELECT f FROM Folio f WHERE f.anio = :anio AND f.fkIdPersonaEscribano.registroEscribano =:registro")
})
public class Folio implements Serializable
{
@Basic(optional = false)
@Column(name = "version")
@Version
private int version = ConstantesPersistencia.VERSION_INICIAL;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "folio")
@com.fasterxml.jackson.annotation.JsonIgnoreProperties({"folio", "copia"})
private Collection<FoliosCopias> foliosCopiasCollection;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_folio")
private Integer idFolio;
@Basic(optional = false)
@Column(name = "numero")
private int numero;
@Basic(optional = false)
@Column(name = "anio")
private int anio;
@Basic(optional = false)
@Column(name = "estado")
private String estado;
@Column(name = "observaciones")
private String observaciones;
@JoinTable(name = "folios_copias", joinColumns =
{
@JoinColumn(name = "fk_id_folio", referencedColumnName = "id_folio")
}, inverseJoinColumns =
{
@JoinColumn(name = "fk_id_copia", referencedColumnName = "id_copia")
})
@ManyToMany(fetch = FetchType.LAZY)
@com.fasterxml.jackson.annotation.JsonIgnoreProperties({"folioList", "foliosCopiasCollection"})
private List<Copia> copiaList;
@JoinColumn(name = "fk_id_persona_escribano", referencedColumnName = "id_persona")
@ManyToOne(optional = false, fetch = FetchType.EAGER)
@com.fasterxml.jackson.annotation.JsonIgnoreProperties({"folioList"})
private Persona fkIdPersonaEscribano;
@JoinColumn(name = "fk_id_tipo_folio", referencedColumnName = "id_tipo_folio")
@ManyToOne(optional = false, fetch = FetchType.EAGER)
@com.fasterxml.jackson.annotation.JsonIgnoreProperties({"folioList"})
private TipoDeFolio fkIdTipoFolio;
@JoinColumn(name = "fk_id_escritura", referencedColumnName = "id_escritura")
@ManyToOne(fetch = FetchType.LAZY)
@com.fasterxml.jackson.annotation.JsonIgnoreProperties({"folioList", "tramiteList", "testimonioList"})
private Escritura fkIdEscritura;
public Folio()
{
this.copiaList = new ArrayList<>();
this.foliosCopiasCollection = new ArrayList<>();
}
public Folio(Integer idFolio)
{
this.idFolio = idFolio;
}
public Folio(Integer idFolio, int numero, int anio, String estado)
{
this.idFolio = idFolio;
this.numero = numero;
this.anio = anio;
this.estado = estado;
}
public Integer getIdFolio()
{
return idFolio;
}
public void setIdFolio(Integer idFolio)
{
this.idFolio = idFolio;
}
public int getNumero()
{
return numero;
}
public void setNumero(int numero)
{
this.numero = numero;
}
public int getAnio()
{
return anio;
}
public void setAnio(int anio)
{
this.anio = anio;
}
public String getEstado()
{
return estado;
}
public void setEstado(String estado)
{
this.estado = estado;
}
public String getObservaciones()
{
return observaciones;
}
public void setObservaciones(String observaciones)
{
this.observaciones = observaciones;
}
@XmlTransient
@JsonIgnore
public List<Copia> getCopiaList()
{
return copiaList;
}
public void setCopiaList(List<Copia> copiaList)
{
this.copiaList = copiaList;
}
public Persona getFkIdPersonaEscribano()
{
return fkIdPersonaEscribano;
}
public void setFkIdPersonaEscribano(Persona fkIdPersonaEscribano)
{
this.fkIdPersonaEscribano = fkIdPersonaEscribano;
}
public TipoDeFolio getFkIdTipoFolio()
{
return fkIdTipoFolio;
}
public void setFkIdTipoFolio(TipoDeFolio fkIdTipoFolio)
{
this.fkIdTipoFolio = fkIdTipoFolio;
}
public Escritura getFkIdEscritura()
{
return fkIdEscritura;
}
public void setFkIdEscritura(Escritura fkIdEscritura)
{
this.fkIdEscritura = fkIdEscritura;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (idFolio != null ? idFolio.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object)
{
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Folio))
{
return false;
}
Folio other = (Folio) object;
if ((this.idFolio == null && other.idFolio != null) || (this.idFolio != null && !this.idFolio.equals(other.idFolio)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "Folio[ idFolio=" + idFolio + " ]"
+ "[ numero=" + numero + " ]"
+ "[ anio=" + anio + " ]";
}
public void setAtributos(DtoFolio unDtoFolio)
{
if (unDtoFolio.isValido())
{
this.setIdFolio(unDtoFolio.getIdFolio());
this.setNumero(unDtoFolio.getNumero());
this.setAnio(unDtoFolio.getAnio());
this.setEstado(unDtoFolio.getEstado());
this.setObservaciones(unDtoFolio.getObservaciones());
this.setVersion(unDtoFolio.getVersion());
}
}
@com.fasterxml.jackson.annotation.JsonIgnore
public DtoFolio getDto()
{
DtoFolio miDtoFolio = new DtoFolio();
miDtoFolio.setIdFolio(this.idFolio);
miDtoFolio.setNumero(this.numero);
miDtoFolio.setEstado(this.estado);
miDtoFolio.setObservaciones(this.observaciones);
miDtoFolio.setAnio(this.anio);
miDtoFolio.setVersion(this.getVersion());
if (this.getFkIdPersonaEscribano() != null)
{
DtoPersona miPersona = new DtoPersona();
miPersona.setIdPersona(fkIdPersonaEscribano.getIdPersona());
miPersona.setRegistroEscribano(fkIdPersonaEscribano.getRegistroEscribano());
miDtoFolio.setPersonaEscribano(miPersona);
}
miDtoFolio.setTiposDeFolio(this.fkIdTipoFolio.getDto());
return miDtoFolio;
}
public int getVersion()
{
return version;
}
public void setVersion(int version)
{
this.version = version;
}
@XmlTransient
@JsonIgnore
public Collection<FoliosCopias> getFoliosCopiasCollection()
{
return foliosCopiasCollection;
}
public void setFoliosCopiasCollection(Collection<FoliosCopias> foliosCopiasCollection)
{
this.foliosCopiasCollection = foliosCopiasCollection;
}
}