package br.com.ec.domain.model;
import java.io.Serializable;
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.Size;
import org.hibernate.annotations.ForeignKey;
import br.edu.cesmac.core.generic.identidade.Identidade;
import br.edu.cesmac.core.util.StringUtil;
import br.edu.cesmac.core.util.VerificadorUtil;
@
Entity
@Table
(name=
"sec_avalfunc_itemaval", schema=
"sc_sec")
public class AvaliacaoFuncionarioItemAvaliacao
implements Serializable, Identidade
{
private static final long serialVersionUID = 1L
;
private AvaliacaoFuncionarioItemAvaliacaoId avalicaoFuncionarioItemAvaliacaoId
;
private AvaliacaoFuncionario avaliacaoFuncionario
;
private ItemAvaliacao itemAvaliacao
;
private Integer quantidadePontos
;
private String observacao
;
public AvaliacaoFuncionarioItemAvaliacao
() {
this.
avalicaoFuncionarioItemAvaliacaoId =
new AvaliacaoFuncionarioItemAvaliacaoId
();
}
public AvaliacaoFuncionarioItemAvaliacao
(AvaliacaoFuncionarioItemAvaliacaoId avalicaoFuncionarioItemAvaliacaoId
) {
this.
avalicaoFuncionarioItemAvaliacaoId = avalicaoFuncionarioItemAvaliacaoId
;
}
public AvaliacaoFuncionarioItemAvaliacao
(AvaliacaoFuncionario avaliacaoFuncionario, ItemAvaliacao itemAvaliacao
) {
avalicaoFuncionarioItemAvaliacaoId =
new AvaliacaoFuncionarioItemAvaliacaoId
();
setAvaliacaoFuncionario
(avaliacaoFuncionario
);
setItemAvaliacao
(itemAvaliacao
);
}
@
Override
@Transient
public Object getId
() {
return getAvalicaoFuncionarioItemAvaliacaoId
();
}
@
Override
public void setId
(Object id
) {
this.
avalicaoFuncionarioItemAvaliacaoId =
(AvaliacaoFuncionarioItemAvaliacaoId
) id
;
}
@EmbeddedId
public AvaliacaoFuncionarioItemAvaliacaoId getAvalicaoFuncionarioItemAvaliacaoId
() {
return avalicaoFuncionarioItemAvaliacaoId
;
}
public void setAvalicaoFuncionarioItemAvaliacaoId
(AvaliacaoFuncionarioItemAvaliacaoId avalicaoFuncionarioItemAvaliacaoId
) {
this.
avalicaoFuncionarioItemAvaliacaoId = avalicaoFuncionarioItemAvaliacaoId
;
}
@ManyToOne
@ForeignKey
(name=
"fk_avalfitemaval_avalfunc")
@JoinColumns
({
@JoinColumn
(name=
"seq_funcionario", referencedColumnName=
"seq_funcionario", insertable=
false, updatable=
false, nullable =
false),
@JoinColumn
(name=
"seq_avaliacao", referencedColumnName=
"seq_avaliacao", insertable=
false, updatable=
false, nullable =
false)
})
public AvaliacaoFuncionario getAvaliacaoFuncionario
() {
return avaliacaoFuncionario
;
}
public void setAvaliacaoFuncionario
(AvaliacaoFuncionario avaliacaoFuncionario
) {
if (VerificadorUtil.
naoEstaNulo(avaliacaoFuncionario
)) {
avalicaoFuncionarioItemAvaliacaoId.
setSequencialAvaliacao(avaliacaoFuncionario.
getSequencialDaAvaliacao());
avalicaoFuncionarioItemAvaliacaoId.
setSequencialFuncionario(avaliacaoFuncionario.
getSequencialDoFuncionario());
}
this.
avaliacaoFuncionario = avaliacaoFuncionario
;
}
@ManyToOne
@ForeignKey
(name=
"fk_avalfitemaval_itemaval")
@JoinColumn
(name =
"seq_item_avaliacao", referencedColumnName=
"seq_item_avaliacao", insertable=
false, updatable=
false, nullable =
false)
public ItemAvaliacao getItemAvaliacao
() {
return itemAvaliacao
;
}
public void setItemAvaliacao
(ItemAvaliacao itemAvaliacao
) {
if (VerificadorUtil.
naoEstaNulo(itemAvaliacao
)) {
avalicaoFuncionarioItemAvaliacaoId.
setSequencialItemAvaliacao(itemAvaliacao.
getSequencial());
}
this.
itemAvaliacao = itemAvaliacao
;
}
@Column
(name=
"qtd_pontos")
public Integer getQuantidadePontos
() {
return quantidadePontos
;
}
public void setQuantidadePontos
(Integer quantidadePontos
) {
this.
quantidadePontos = quantidadePontos
;
}
@Column
(name=
"dsc_observacao")
@Size
(max =
400, message =
"Limite de caracteres ultrapassado: Observação")
public String getObservacao
() {
return observacao
;
}
public void setObservacao
(String observacao
) {
this.
observacao = StringUtil.
setarUpperCaseComTrim(observacao
);
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result
+
((avalicaoFuncionarioItemAvaliacaoId ==
null) ? 0 : avalicaoFuncionarioItemAvaliacaoId.
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;
AvaliacaoFuncionarioItemAvaliacao other =
(AvaliacaoFuncionarioItemAvaliacao
) obj
;
if (avalicaoFuncionarioItemAvaliacaoId ==
null) {
if (other.
avalicaoFuncionarioItemAvaliacaoId !=
null)
return false;
} else if (!avalicaoFuncionarioItemAvaliacaoId.
equals(other.
avalicaoFuncionarioItemAvaliacaoId))
return false;
return true;
}
}