/*
* 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.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
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 = "competencia")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Competencia.findAll", query = "SELECT c FROM Competencia c"),
@NamedQuery(name = "Competencia.findByIdCompetencia", query = "SELECT c FROM Competencia c WHERE c.idCompetencia = :idCompetencia"),
@NamedQuery(name = "Competencia.findByEstado", query = "SELECT c FROM Competencia c WHERE c.estado = :estado"),
@NamedQuery(name = "Competencia.findByCodigo", query = "SELECT c FROM Competencia c WHERE c.codigo = :codigo"),
@NamedQuery(name = "Competencia.findByDuracionEstimadaHoras", query = "SELECT c FROM Competencia c WHERE c.duracionEstimadaHoras = :duracionEstimadaHoras")})
public class Competencia implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_competencia")
private Integer idCompetencia;
@Basic(optional = false)
@NotNull
@Lob
@Size(min = 1, max = 2147483647)
@Column(name = "nombre_competencia")
private String nombreCompetencia;
@Basic(optional = false)
@NotNull
@Column(name = "estado")
private boolean estado;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 9)
@Column(name = "codigo")
private String codigo;
@Basic(optional = false)
@NotNull
@Column(name = "duracion_estimada_horas")
private int duracionEstimadaHoras;
@JoinTable(name = "programa_has_competencia", joinColumns = {
@JoinColumn(name = "id_competencia", referencedColumnName = "id_competencia")}, inverseJoinColumns = {
@JoinColumn(name = "programa_codigo", referencedColumnName = "codigo"),
@JoinColumn(name = "programa_version", referencedColumnName = "version")})
@ManyToMany
private List<Programa> programaList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idCompetencia")
private List<ConocimientoConceptoPrincipios> conocimientoConceptoPrincipiosList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idCompetencia")
private List<CriteriosEvaluacion> criteriosEvaluacionList;
@JoinColumn(name = "id_tipo_competencia", referencedColumnName = "id_tipo_competencia")
@ManyToOne(optional = false)
private TipoCompetencia idTipoCompetencia;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idCompetencia")
private List<ConocimientoProceso> conocimientoProcesoList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idCompetencia")
private List<ResultadoAprendizaje> resultadoAprendizajeList;
public Competencia() {
}
public Competencia(Integer idCompetencia) {
this.idCompetencia = idCompetencia;
}
public Competencia(Integer idCompetencia, String nombreCompetencia, boolean estado, String codigo, int duracionEstimadaHoras) {
this.idCompetencia = idCompetencia;
this.nombreCompetencia = nombreCompetencia;
this.estado = estado;
this.codigo = codigo;
this.duracionEstimadaHoras = duracionEstimadaHoras;
}
public Integer getIdCompetencia() {
return idCompetencia;
}
public void setIdCompetencia(Integer idCompetencia) {
this.idCompetencia = idCompetencia;
}
public String getNombreCompetencia() {
return nombreCompetencia;
}
public void setNombreCompetencia(String nombreCompetencia) {
this.nombreCompetencia = nombreCompetencia;
}
public boolean getEstado() {
return estado;
}
public void setEstado(boolean estado) {
this.estado = estado;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public int getDuracionEstimadaHoras() {
return duracionEstimadaHoras;
}
public void setDuracionEstimadaHoras(int duracionEstimadaHoras) {
this.duracionEstimadaHoras = duracionEstimadaHoras;
}
@XmlTransient
public List<Programa> getProgramaList() {
return programaList;
}
public void setProgramaList(List<Programa> programaList) {
this.programaList = programaList;
}
@XmlTransient
public List<ConocimientoConceptoPrincipios> getConocimientoConceptoPrincipiosList() {
return conocimientoConceptoPrincipiosList;
}
public void setConocimientoConceptoPrincipiosList(List<ConocimientoConceptoPrincipios> conocimientoConceptoPrincipiosList) {
this.conocimientoConceptoPrincipiosList = conocimientoConceptoPrincipiosList;
}
@XmlTransient
public List<CriteriosEvaluacion> getCriteriosEvaluacionList() {
return criteriosEvaluacionList;
}
public void setCriteriosEvaluacionList(List<CriteriosEvaluacion> criteriosEvaluacionList) {
this.criteriosEvaluacionList = criteriosEvaluacionList;
}
public TipoCompetencia getIdTipoCompetencia() {
return idTipoCompetencia;
}
public void setIdTipoCompetencia(TipoCompetencia idTipoCompetencia) {
this.idTipoCompetencia = idTipoCompetencia;
}
@XmlTransient
public List<ConocimientoProceso> getConocimientoProcesoList() {
return conocimientoProcesoList;
}
public void setConocimientoProcesoList(List<ConocimientoProceso> conocimientoProcesoList) {
this.conocimientoProcesoList = conocimientoProcesoList;
}
@XmlTransient
public List<ResultadoAprendizaje> getResultadoAprendizajeList() {
return resultadoAprendizajeList;
}
public void setResultadoAprendizajeList(List<ResultadoAprendizaje> resultadoAprendizajeList) {
this.resultadoAprendizajeList = resultadoAprendizajeList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idCompetencia != null ? idCompetencia.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 Competencia)) {
return false;
}
Competencia other = (Competencia) object;
if ((this.idCompetencia == null && other.idCompetencia != null) || (this.idCompetencia != null && !this.idCompetencia.equals(other.idCompetencia))) {
return false;
}
return true;
}
@Override
public String toString() {
return getNombreCompetencia();
}
}