TipoDeFolio.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.DtoTipoDeFolio;
import com.licensis.notaire.dto.exceptions.DtoInvalidoException;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
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.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;
/**
* Clase que representa un tipo de folio en particular que puede ser para el protocolo: principal,
* auxiliar, etc.
* <p>
* REGLA DE NEGOCIO<p>
* <li> Los tipos de folios no se pueden eliminar (debido a
* que se tiene que mantener un historia de los mismos), por lo tanto, solo se le puede cambiar el
* estado a "INHABILITADO". </li>
*/
@Entity
@Table(name = "tipos_de_folio")
@XmlRootElement
@NamedQueries(
{
@NamedQuery(name = "TipoDeFolio.findAll", query = "SELECT t FROM TipoDeFolio t"),
@NamedQuery(name = "TipoDeFolio.findByIdTipoFolio", query = "SELECT t FROM TipoDeFolio t WHERE t.idTipoFolio = :idTipoFolio")
})
public class TipoDeFolio implements Serializable
{
@Basic(optional = false)
@Column(name = "version")
@Version
private int version;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_tipo_folio")
private Integer idTipoFolio;
@Basic(optional = false)
@Column(name = "nombre")
private String nombre;
@Column(name = "observaciones")
private String observaciones;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "fkIdTipoFolio", fetch = FetchType.EAGER)
private List<Folio> folioList;
@Basic(optional = false)
@Column(name = "habilitado")
private boolean habilitado;
public TipoDeFolio()
{
}
public TipoDeFolio(String nombreTipoDeFolio)
{
this.nombre = nombreTipoDeFolio;
}
public TipoDeFolio(Integer idTipoFolio)
{
this.idTipoFolio = idTipoFolio;
}
public TipoDeFolio(Integer idTipoFolio, String nombre)
{
this.idTipoFolio = idTipoFolio;
this.nombre = nombre;
}
public Integer getIdTipoFolio()
{
return idTipoFolio;
}
public void setIdTipoFolio(Integer idTipoFolio)
{
this.idTipoFolio = idTipoFolio;
}
public String getNombre()
{
return nombre;
}
public void setNombre(String nombre)
{
this.nombre = nombre;
}
public String getObservaciones()
{
return observaciones;
}
public void setObservaciones(String observaciones)
{
this.observaciones = observaciones;
}
@XmlTransient
@JsonIgnore
public List<Folio> getFolioList()
{
return folioList;
}
public void setFolioList(List<Folio> folioList)
{
this.folioList = folioList;
}
public int getVersion()
{
return version;
}
public void setVersion(int version)
{
this.version = version;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (idTipoFolio != null ? idTipoFolio.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 TipoDeFolio))
{
return false;
}
TipoDeFolio other = (TipoDeFolio) object;
if ((this.idTipoFolio == null && other.idTipoFolio != null) || (this.idTipoFolio != null && !this.idTipoFolio.equals(other.idTipoFolio)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "TipoDeFolio[ idTipoFolio=" + idTipoFolio + " ]"
+ "[ nombre=" + nombre + " ]";
}
@com.fasterxml.jackson.annotation.JsonIgnore
public DtoTipoDeFolio getDto()
{
DtoTipoDeFolio miDtoTipoDeFolio = new DtoTipoDeFolio();
miDtoTipoDeFolio.setIdTipoFolio(this.getIdTipoFolio());
miDtoTipoDeFolio.setNombre(this.getNombre());
miDtoTipoDeFolio.setObservaciones(this.getObservaciones());
miDtoTipoDeFolio.setHabilitado(this.habilitado);
miDtoTipoDeFolio.setVersion(this.getVersion());
return miDtoTipoDeFolio;
}
public void setAtributos(DtoTipoDeFolio dtoTipoDeFolio) throws DtoInvalidoException
{
if (dtoTipoDeFolio.isValido())
{
this.setIdTipoFolio(dtoTipoDeFolio.getIdTipoFolio());
this.setNombre(dtoTipoDeFolio.getNombre());
this.setObservaciones(dtoTipoDeFolio.getObservaciones());
this.setHabilitado(dtoTipoDeFolio.isHabilitado());
this.setVersion(dtoTipoDeFolio.getVersion());
} else
{
throw new DtoInvalidoException("El dto indicado no es valido.");
}
}
public boolean getHabilitado()
{
return habilitado;
}
public void setHabilitado(boolean habilitado)
{
this.habilitado = habilitado;
}
}