TipoDeTramite.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.DtoTipoDeTramite;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
import java.util.ArrayList;
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.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;
/**
*
* @author User
*/
@Entity
@Table(name = "tipos_de_tramite")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "TipoDeTramite.findAll", query = "SELECT t FROM TipoDeTramite t"),
@NamedQuery(name = "TipoDeTramite.findByIdTipoTramite", query = "SELECT t FROM TipoDeTramite t WHERE t.idTipoTramite = :idTipoTramite"),
@NamedQuery(name = "TipoDeTramite.findBySeArchiva", query = "SELECT t FROM TipoDeTramite t WHERE t.seArchiva = :seArchiva"),
@NamedQuery(name = "TipoDeTramite.findBySeInscribe", query = "SELECT t FROM TipoDeTramite t WHERE t.seInscribe = :seInscribe"),
@NamedQuery(name = "TipoDeTramite.findByAsociaInmuebles", query = "SELECT t FROM TipoDeTramite t WHERE t.asociaInmuebles = :asociaInmuebles"),
@NamedQuery(name = "TipoDeTramite.findByNombre", query = "SELECT t FROM TipoDeTramite t WHERE t.nombre = :nombre")
})
public class TipoDeTramite implements Serializable {
@Basic(optional = false)
@Column(name = "habilitado")
private boolean habilitado;
@Basic(optional = false)
@Column(name = "version")
@Version
private int version = 0;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_tipo_tramite")
private Integer idTipoTramite;
@Basic(optional = false)
@Column(name = "nombre")
private String nombre;
@Basic(optional = false)
@Column(name = "se_archiva")
private boolean seArchiva;
@Basic(optional = false)
@Column(name = "se_inscribe")
private boolean seInscribe;
@Basic(optional = false)
@Column(name = "asocia_inmuebles")
private boolean asociaInmuebles;
@Column(name = "observaciones")
private String observaciones;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "tipoDeTramite", fetch = FetchType.LAZY)
private List<PlantillaPresupuesto> plantillaPresupuestoList = new ArrayList<>();
@OneToMany(cascade = CascadeType.ALL, mappedBy = "tipoDeTramite", fetch = FetchType.LAZY)
private List<PlantillaTramite> plantillaTramiteList = new ArrayList<>();
@OneToMany(cascade = CascadeType.ALL, mappedBy = "fkIdTipoTramite", fetch = FetchType.LAZY)
private List<Tramite> tramiteList = new ArrayList<>();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fk_workflow_definition_id")
private WorkflowDefinition workflowDefinition;
public TipoDeTramite() {
}
public TipoDeTramite(Integer idTipoTramite) {
this.idTipoTramite = idTipoTramite;
}
public TipoDeTramite(Integer idTipoTramite, String nombre, boolean seArchiva, boolean seInscribe,
boolean asociaInmuebles) {
this.idTipoTramite = idTipoTramite;
this.nombre = nombre;
this.seArchiva = seArchiva;
this.seInscribe = seInscribe;
this.asociaInmuebles = asociaInmuebles;
}
public Integer getIdTipoTramite() {
return idTipoTramite;
}
public void setIdTipoTramite(Integer idTipoTramite) {
this.idTipoTramite = idTipoTramite;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public boolean getSeArchiva() {
return seArchiva;
}
public void setSeArchiva(boolean seArchiva) {
this.seArchiva = seArchiva;
}
public boolean getSeInscribe() {
return seInscribe;
}
public void setSeInscribe(boolean seInscribe) {
this.seInscribe = seInscribe;
}
public boolean getAsociaInmuebles() {
return asociaInmuebles;
}
public void setAsociaInmuebles(boolean asociaInmuebles) {
this.asociaInmuebles = asociaInmuebles;
}
public String getObservaciones() {
return observaciones;
}
public void setObservaciones(String observaciones) {
this.observaciones = observaciones;
}
@XmlTransient
@JsonIgnore
public List<PlantillaPresupuesto> getPlantillaPresupuestoList() {
return plantillaPresupuestoList;
}
public void setPlantillaPresupuestoList(List<PlantillaPresupuesto> plantillaPresupuestoList) {
this.plantillaPresupuestoList = plantillaPresupuestoList;
}
@XmlTransient
@JsonIgnore
public List<PlantillaTramite> getPlantillaTramiteList() {
return plantillaTramiteList;
}
public void setPlantillaTramiteList(List<PlantillaTramite> plantillaTramiteList) {
this.plantillaTramiteList = plantillaTramiteList;
}
@XmlTransient
@JsonIgnore
public List<Tramite> getTramiteList() {
return tramiteList;
}
public void setTramiteList(List<Tramite> tramiteList) {
this.tramiteList = tramiteList;
}
@JsonIgnore
public WorkflowDefinition getWorkflowDefinition() {
return workflowDefinition;
}
public void setWorkflowDefinition(WorkflowDefinition workflowDefinition) {
this.workflowDefinition = workflowDefinition;
}
public void setAtributos(DtoTipoDeTramite dtoTipoDeTramite) {
if (dtoTipoDeTramite.isValido()) {
this.idTipoTramite = dtoTipoDeTramite.getIdTipoTramite();
this.nombre = dtoTipoDeTramite.getNombre();
// Null-safe unboxing: PUT payloads may omit boolean flags, which
// previously NPE'd (e.g. getAsociaInmuebles() null on update).
this.seArchiva = Boolean.TRUE.equals(dtoTipoDeTramite.getSeArchiva());
this.seInscribe = Boolean.TRUE.equals(dtoTipoDeTramite.getSeInscribe());
this.asociaInmuebles = Boolean.TRUE.equals(dtoTipoDeTramite.getAsociaInmuebles());
this.observaciones = dtoTipoDeTramite.getObservaciones();
// Preserve current version when the payload omits it (avoids NPE on update).
if (dtoTipoDeTramite.getVersion() != null) {
this.version = dtoTipoDeTramite.getVersion();
}
habilitado = !Boolean.FALSE.equals(dtoTipoDeTramite.getHabilitado());
}
}
@com.fasterxml.jackson.annotation.JsonIgnore
public DtoTipoDeTramite getDto() {
DtoTipoDeTramite miDto = new DtoTipoDeTramite();
miDto.setIdTipoTramite(idTipoTramite);
miDto.setNombre(nombre);
miDto.setSeArchiva(seArchiva);
miDto.setSeInscribe(seInscribe);
miDto.setAsociaInmuebles(asociaInmuebles);
miDto.setObservaciones(observaciones);
miDto.setVersion(version);
miDto.setHabilitado(habilitado);
if (workflowDefinition != null) {
miDto.setWorkflowDefinitionId(workflowDefinition.getId());
miDto.setWorkflowDefinitionNombre(workflowDefinition.getNombre());
}
return miDto;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idTipoTramite != null ? idTipoTramite.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 TipoDeTramite)) {
return false;
}
TipoDeTramite other = (TipoDeTramite) object;
if ((this.idTipoTramite == null && other.idTipoTramite != null)
|| (this.idTipoTramite != null && !this.idTipoTramite.equals(other.idTipoTramite))) {
return false;
}
return true;
}
@Override
public String toString() {
return "TipoDeTramite[ idTipoTramite=" + idTipoTramite + " ]"
+ "[ nombre=" + nombre + " ]";
}
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public boolean getHabilitado() {
return habilitado;
}
public void setHabilitado(boolean habilitado) {
this.habilitado = habilitado;
}
}