/*
* 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 br.edu.ifnmg.GerenciamentoEventos.DomainModel;
import br.edu.ifnmg.DomainModel.Entidade;
import br.edu.ifnmg.DomainModel.Pessoa;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
import javax.persistence.Cacheable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;
/**
*
* @author petronio
*/
@Cacheable(false)
@Entity
@Table(name="submissoesavaliacoes")
public class SubmissaoAvaliacao implements Entidade, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
private Submissao submissao;
@ManyToOne
private Pessoa avaliador;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
QuestionarioResposta resposta;
@Enumerated()
private SubmissaoStatus status;
public SubmissaoAvaliacao() {
this.status = SubmissaoStatus.Aprovado;
}
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Submissao getSubmissao() {
return submissao;
}
public void setSubmissao(Submissao submissao) {
this.submissao = submissao;
}
public Pessoa getAvaliador() {
return avaliador;
}
public void setAvaliador(Pessoa avaliador) {
this.avaliador = avaliador;
}
public QuestionarioResposta getResposta() {
return resposta;
}
public void setResposta(QuestionarioResposta resposta) {
this.resposta = resposta;
}
public SubmissaoStatus getStatus() {
return status;
}
public void setStatus(SubmissaoStatus status) {
this.status = status;
}
@Override
public int hashCode() {
int hash = 3;
hash = 41 * hash + Objects.hashCode(this.id);
hash = 41 * hash + Objects.hashCode(this.submissao);
hash = 41 * hash + Objects.hashCode(this.avaliador);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final SubmissaoAvaliacao other = (SubmissaoAvaliacao) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
if (!Objects.equals(this.submissao, other.submissao)) {
return false;
}
if (!Objects.equals(this.avaliador, other.avaliador)) {
return false;
}
return true;
}
@Override
public String toString() {
return id.toString();
}
@ManyToOne(fetch = FetchType.LAZY)
private Pessoa criador;
@Temporal(TemporalType.TIMESTAMP)
private Date dataCriacao;
@ManyToOne(fetch = FetchType.LAZY)
private Pessoa ultimoAlterador;
@Temporal(TemporalType.TIMESTAMP)
private Date dataUltimaAlteracao;
@Version
private Long versao;
@Override
public Pessoa getCriador() {
return criador;
}
@Override
public void setCriador(Pessoa criador) {
this.criador = criador;
}
@Override
public Date getDataCriacao() {
return dataCriacao;
}
@Override
public void setDataCriacao(Date dataCriacao) {
this.dataCriacao = dataCriacao;
}
@Override
public Pessoa getUltimoAlterador() {
return ultimoAlterador;
}
@Override
public void setUltimoAlterador(Pessoa ultimoAlterador) {
this.ultimoAlterador = ultimoAlterador;
}
@Override
public Date getDataUltimaAlteracao() {
return dataUltimaAlteracao;
}
@Override
public void setDataUltimaAlteracao(Date dataUltimaAlteracao) {
this.dataUltimaAlteracao = dataUltimaAlteracao;
}
@Override
public Long getVersao() {
return versao;
}
public void setVersao(Long versao) {
this.versao = versao;
}
}