Blame |
Last modification |
View Log
| Download
| RSS feed
package br.edu.cesmac.sic.core.domain.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import org.hibernate.envers.AuditTable;
import org.hibernate.envers.Audited;
import org.hibernate.envers.RelationTargetAuditMode;
import br.edu.cesmac.core.interfaces.Alterar;
import br.edu.cesmac.core.interfaces.Cadastrar;
import br.edu.cesmac.core.util.VerificadorUtil;
import br.edu.cesmac.sic.core.domain.model.dto.TopicoQuestaoDTO;
import br.edu.cesmac.sic.core.domain.model.tipo.TipoTopico;
@Audited
@AuditTable
(value=
"sic_aud_resposta", schema=
"admsic001")
@
Entity
@Table
(name=
"sic_resposta", schema=
"admsic001")
public class Resposta
implements Serializable {
private static final long serialVersionUID = 1L
;
private RespostaId respostaId =
new RespostaId
();
private Questao questao
;
private Avaliacao avaliacao
;
private Double valorPontuacao
;
@EmbeddedId
public RespostaId getRespostaId
() {
return respostaId
;
}
public void setRespostaId
(RespostaId respostaId
) {
this.
respostaId = respostaId
;
}
@Audited
(targetAuditMode = RelationTargetAuditMode.
NOT_AUDITED)
@ManyToOne
@JoinColumn
(name=
"seq_questao", referencedColumnName=
"seq_questao", nullable=
false, insertable=
false, updatable=
false)
public Questao getQuestao
() {
return questao
;
}
public void setQuestao
(Questao questao
) {
if (VerificadorUtil.
naoEstaNulo(questao
)) {
respostaId.
setSequencialQuestao(questao.
getSequencial());
}
this.
questao = questao
;
}
@Audited
(targetAuditMode = RelationTargetAuditMode.
NOT_AUDITED)
@ManyToOne
@JoinColumns
(value=
{
@JoinColumn
(name=
"seq_projeto_pesquisa", referencedColumnName=
"seq_projeto_pesquisa", nullable=
false, insertable=
false, updatable=
false),
@JoinColumn
(name=
"seq_avaliador", referencedColumnName=
"seq_avaliador", nullable=
false, insertable=
false, updatable=
false)
})
public Avaliacao getAvaliacao
() {
return avaliacao
;
}
public void setAvaliacao
(Avaliacao avaliacao
) {
if (VerificadorUtil.
naoEstaNulo(avaliacao
)) {
respostaId.
setSequencialProjetoPesquisa(avaliacao.
getSequencialDoProjetoPesquisa());
respostaId.
setSequencialAvaliador(avaliacao.
getSequencialDoAvaliador());
}
this.
avaliacao = avaliacao
;
}
@NotNull
(message=
"Obrigatório informar a pontuação", groups=
{Cadastrar.
class, Alterar.
class})
@Column
(name=
"val_pontuacao", nullable=
false)
public Double getValorPontuacao
() {
return valorPontuacao
;
}
public void setValorPontuacao
(Double valorPontuacao
) {
this.
valorPontuacao = valorPontuacao
;
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result +
((respostaId ==
null) ? 0 : respostaId.
hashCode());
return result
;
}
@
Override
public boolean equals
(Object obj
) {
if (this == obj
)
return true;
if (obj ==
null)
return false;
if (getClass
() != obj.
getClass())
return false;
Resposta other =
(Resposta
) obj
;
if (respostaId ==
null) {
if (other.
respostaId !=
null)
return false;
} else if (!respostaId.
equals(other.
respostaId))
return false;
return true;
}
}