Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

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());
        }

}