package br.gov.al.saude.srv.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.PrePersist;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import br.gov.al.saude.framework.core.interfaces.Alterar;
import br.gov.al.saude.framework.core.interfaces.Cadastrar;
import br.gov.al.saude.framework.model.UfView;
@
Entity
@Table
(name =
"srv_servdadofunc_conselho", schema =
"sc_srv")
public class ServidorDadoFuncionalConselho
implements Serializable {
private static final long serialVersionUID = 1L
;
private Long sequencial
;
private ServidorDadoFuncional servidorDadoFuncional
;
private String numeroInscricaoConselho
;
private Conselho conselho
;
private UfView uf
;
@Id
@Column
(name=
"seq_servidor_dadofuncional")
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@OneToOne
@JoinColumn
(name=
"seq_servidor_dadofuncional", referencedColumnName=
"seq_servidor_dadofuncional", insertable=
false, updatable=
false)
public ServidorDadoFuncional getServidorDadoFuncional
() {
return servidorDadoFuncional
;
}
public void setServidorDadoFuncional
(ServidorDadoFuncional servidorDadoFuncional
) {
this.
servidorDadoFuncional = servidorDadoFuncional
;
if(servidorDadoFuncional
!=
null) setSequencial
(servidorDadoFuncional.
getSequencial());
}
@Column
(name=
"num_inscricao_conselho", length=
10, nullable=
false)
@NotNull
(message=
"Obrigatório informar o número de inscrição no conselho.", groups=
{Cadastrar.
class, Alterar.
class})
public String getNumeroInscricaoConselho
() {
return numeroInscricaoConselho
;
}
public void setNumeroInscricaoConselho
(String numeroInscricaoConselho
) {
this.
numeroInscricaoConselho = numeroInscricaoConselho
;
}
@ManyToOne
@JoinColumn
(name=
"cod_conselho", referencedColumnName=
"cod_conselho")
@NotNull
(message=
"Obrigatório informar o conselho.", groups=
{Cadastrar.
class, Alterar.
class})
public Conselho getConselho
() {
return conselho
;
}
public void setConselho
(Conselho conselho
) {
this.
conselho = conselho
;
}
@ManyToOne
@JoinColumn
(name=
"cod_uf", referencedColumnName=
"cod_uf")
@NotNull
(message=
"Obrigatório informar a UF do conselho.", groups=
{Cadastrar.
class, Alterar.
class})
public UfView getUf
() {
return uf
;
}
public void setUf
(UfView uf
) {
this.
uf = uf
;
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result
+
((sequencial ==
null) ? 0 : sequencial.
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;
ServidorDadoFuncionalConselho other =
(ServidorDadoFuncionalConselho
) obj
;
if (sequencial ==
null) {
if (other.
sequencial !=
null)
return false;
} else if (!sequencial.
equals(other.
sequencial))
return false;
return true;
}
@PrePersist
private void setarSequencialAntesDeInserir
() {
if(servidorDadoFuncional
!=
null) setSequencial
(servidorDadoFuncional.
getSequencial());
}
}