package br.gov.al.saude.srv.model;
import java.io.Serializable;
import java.util.Date;
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.Temporal;
import javax.persistence.TemporalType;
import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.srv.model.embedded.ServidorProgramacaoFeriasId;
@
Entity
@Table
(name=
"srv_programferias_servdadofunc", schema=
"sc_srv")
public class ServidorProgramacaoFerias
implements Serializable{
private static final long serialVersionUID = 1L
;
private ServidorProgramacaoFeriasId servidorProgramacaoFeriasId =
new ServidorProgramacaoFeriasId
();
private ServidorDadoFuncional servidorDadoFuncional
;
private ProgramacaoFerias programacaoFerias
;
private Date dataInicio
;
private Date dataFim
;
@EmbeddedId
public ServidorProgramacaoFeriasId getServidorProgramacaoFeriasId
() {
return servidorProgramacaoFeriasId
;
}
public void setServidorProgramacaoFeriasId
(
ServidorProgramacaoFeriasId servidorProgramacaoFeriasId
) {
this.
servidorProgramacaoFeriasId = servidorProgramacaoFeriasId
;
}
@ManyToOne
@JoinColumn
(name=
"seq_servidor_dadofuncional", referencedColumnName=
"seq_servidor_dadofuncional", nullable=
false, insertable=
false, updatable=
false)
public ServidorDadoFuncional getServidorDadoFuncional
() {
return servidorDadoFuncional
;
}
public void setServidorDadoFuncional
(ServidorDadoFuncional servidorDadoFuncional
) {
if(VerificadorUtil.
naoEstaNulo(servidorDadoFuncional
)) {
servidorProgramacaoFeriasId.
setSequencialServidorDadoFuncional(servidorDadoFuncional.
getSequencial());
}
this.
servidorDadoFuncional = servidorDadoFuncional
;
}
@ManyToOne
@JoinColumns
({
@JoinColumn
(name=
"cod_unidade", referencedColumnName=
"cod_unidade", nullable=
false, insertable=
false, updatable=
false),
@JoinColumn
(name=
"num_ano_programacao", referencedColumnName=
"num_ano_programacao", nullable=
false, insertable=
false, updatable=
false)
})
public ProgramacaoFerias getProgramacaoFerias
() {
return programacaoFerias
;
}
public void setProgramacaoFerias
(ProgramacaoFerias programacaoFerias
) {
if(VerificadorUtil.
naoEstaNulo(programacaoFerias
)) {
servidorProgramacaoFeriasId.
setCodigoUnidade(programacaoFerias.
getCodigoUnidade());
servidorProgramacaoFeriasId.
setNumeroAnoProgramacao(programacaoFerias.
getNumeroAnoProgramacao());
}
this.
programacaoFerias = programacaoFerias
;
}
@Temporal
(TemporalType.
DATE)
@Column
(name=
"dat_inicio", nullable=
false)
public Date getDataInicio
() {
return dataInicio
;
}
public void setDataInicio
(Date dataInicio
) {
this.
dataInicio = dataInicio
;
}
@Temporal
(TemporalType.
DATE)
@Column
(name=
"dat_fim", nullable=
false)
public Date getDataFim
() {
return dataFim
;
}
public void setDataFim
(Date dataFim
) {
this.
dataFim = dataFim
;
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result
+
((servidorProgramacaoFeriasId ==
null) ? 0
: servidorProgramacaoFeriasId.
hashCode());
return result
;
}
@
Override
public boolean equals
(Object obj
) {
if (this == obj
)
return true;
if (obj ==
null)
return false;
if (!(obj
instanceof ServidorProgramacaoFerias
))
return false;
ServidorProgramacaoFerias other =
(ServidorProgramacaoFerias
) obj
;
if (servidorProgramacaoFeriasId ==
null) {
if (other.
servidorProgramacaoFeriasId !=
null)
return false;
} else if (!servidorProgramacaoFeriasId
.
equals(other.
servidorProgramacaoFeriasId))
return false;
return true;
}
}