/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.pepe.jpa.entities;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author Junior Cabal
*/
@Entity
@Table(name = "programa")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Programa.findAll", query = "SELECT p FROM Programa p"),
@NamedQuery(name = "Programa.findByCodigo", query = "SELECT p FROM Programa p WHERE p.programaPK.codigo = :codigo"),
@NamedQuery(name = "Programa.encontrarCodigoVersion", query = "SELECT p FROM Programa p WHERE p.programaPK.codigo = :codigo AND p.programaPK.version = :version"),
@NamedQuery(name = "Programa.findByCodigo", query = "SELECT p FROM Programa p WHERE p.programaPK.codigo = :codigo"),
@NamedQuery(name = "Programa.encontrarNombrePrograma", query = "SELECT p FROM Programa p WHERE p.nombrePrograma LIKE :nombrePrograma"),
@NamedQuery(name = "Programa.findByNombrePrograma", query = "SELECT p FROM Programa p WHERE p.nombrePrograma like :nombrePrograma"),
@NamedQuery(name = "Programa.findByVersion", query = "SELECT p FROM Programa p WHERE p.programaPK.version = :version"),
@NamedQuery(name = "Programa.findByDuracionTrimestresLectiva", query = "SELECT p FROM Programa p WHERE p.duracionTrimestresLectiva = :duracionTrimestresLectiva"),
@NamedQuery(name = "Programa.findByEstado", query = "SELECT p FROM Programa p WHERE p.estado = :estado"),
@NamedQuery(name = "Programa.findByDuracionTrimestresProductiva", query = "SELECT p FROM Programa p WHERE p.duracionTrimestresProductiva = :duracionTrimestresProductiva")})
public class Programa implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected ProgramaPK programaPK;
@Basic(optional = false)
@NotNull
@Lob
@Size(min = 1, max = 65535)
@Column(name = "nombre_programa")
private String nombrePrograma;
@Basic(optional = false)
@NotNull
@Column(name = "duracion_trimestres_lectiva")
private short duracionTrimestresLectiva;
@Basic(optional = false)
@NotNull
@Column(name = "estado")
private short estado;
@Basic(optional = false)
@NotNull
@Lob
@Size(min = 1, max = 2147483647)
@Column(name = "justificacion")
private String justificacion;
@Basic(optional = false)
@NotNull
@Column(name = "duracion_trimestres_productiva")
private short duracionTrimestresProductiva;
@ManyToMany(mappedBy = "programaList")
private List<Competencia> competenciaList;
@JoinColumn(name = "id_linea_tecnologica", referencedColumnName = "id_linea_tecnologica")
@ManyToOne(optional = false)
private LineaTecnologica idLineaTecnologica;
@JoinColumn(name = "id_modalidad_formacion", referencedColumnName = "id_modalidad_formacion")
@ManyToOne(optional = false)
private ModalidadFormacion idModalidadFormacion;
@JoinColumn(name = "id_nivel_formacion", referencedColumnName = "id_nivel_formacion")
@ManyToOne(optional = false)
private NivelFormacion idNivelFormacion;
@JoinColumn(name = "id_perfil_entrada", referencedColumnName = "id_perfil_entrada")
@ManyToOne(optional = false)
private PerfilEntrada idPerfilEntrada;
@JoinColumn(name = "id_tipo_formacion", referencedColumnName = "id_tipo_formacion")
@ManyToOne(optional = false)
private TipoFormacion idTipoFormacion;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "programa")
private List<Ficha> fichaList;
public Programa() {
}
public Programa(ProgramaPK programaPK) {
this.programaPK = programaPK;
}
public Programa(ProgramaPK programaPK, String nombrePrograma, short duracionTrimestresLectiva, short estado, String justificacion, short duracionTrimestresProductiva) {
this.programaPK = programaPK;
this.nombrePrograma = nombrePrograma;
this.duracionTrimestresLectiva = duracionTrimestresLectiva;
this.estado = estado;
this.justificacion = justificacion;
this.duracionTrimestresProductiva = duracionTrimestresProductiva;
}
public Programa(String codigo, String version) {
this.programaPK = new ProgramaPK(codigo, version);
}
public ProgramaPK getProgramaPK() {
return programaPK;
}
public void setProgramaPK(ProgramaPK programaPK) {
this.programaPK = programaPK;
}
public String getNombrePrograma() {
return nombrePrograma;
}
public void setNombrePrograma(String nombrePrograma) {
this.nombrePrograma = nombrePrograma;
}
public short getDuracionTrimestresLectiva() {
return duracionTrimestresLectiva;
}
public void setDuracionTrimestresLectiva(short duracionTrimestresLectiva) {
this.duracionTrimestresLectiva = duracionTrimestresLectiva;
}
public short getEstado() {
return estado;
}
public void setEstado(short estado) {
this.estado = estado;
}
public String getJustificacion() {
return justificacion;
}
public void setJustificacion(String justificacion) {
this.justificacion = justificacion;
}
public short getDuracionTrimestresProductiva() {
return duracionTrimestresProductiva;
}
public void setDuracionTrimestresProductiva(short duracionTrimestresProductiva) {
this.duracionTrimestresProductiva = duracionTrimestresProductiva;
}
@XmlTransient
public List<Competencia> getCompetenciaList() {
return competenciaList;
}
public void setCompetenciaList(List<Competencia> competenciaList) {
this.competenciaList = competenciaList;
}
public LineaTecnologica getIdLineaTecnologica() {
return idLineaTecnologica;
}
public void setIdLineaTecnologica(LineaTecnologica idLineaTecnologica) {
this.idLineaTecnologica = idLineaTecnologica;
}
public ModalidadFormacion getIdModalidadFormacion() {
return idModalidadFormacion;
}
public void setIdModalidadFormacion(ModalidadFormacion idModalidadFormacion) {
this.idModalidadFormacion = idModalidadFormacion;
}
public NivelFormacion getIdNivelFormacion() {
return idNivelFormacion;
}
public void setIdNivelFormacion(NivelFormacion idNivelFormacion) {
this.idNivelFormacion = idNivelFormacion;
}
public PerfilEntrada getIdPerfilEntrada() {
return idPerfilEntrada;
}
public void setIdPerfilEntrada(PerfilEntrada idPerfilEntrada) {
this.idPerfilEntrada = idPerfilEntrada;
}
public TipoFormacion getIdTipoFormacion() {
return idTipoFormacion;
}
public void setIdTipoFormacion(TipoFormacion idTipoFormacion) {
this.idTipoFormacion = idTipoFormacion;
}
@XmlTransient
public List<Ficha> getFichaList() {
return fichaList;
}
public void setFichaList(List<Ficha> fichaList) {
this.fichaList = fichaList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (programaPK != null ? programaPK.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 Programa)) {
return false;
}
Programa other = (Programa) object;
if ((this.programaPK == null && other.programaPK != null) || (this.programaPK != null && !this.programaPK.equals(other.programaPK))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.pepe.jpa.entities.Programa[ programaPK=" + programaPK + " ]";
}
}