Subversion Repositories Integrator Subversion

Rev

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

package br.gov.al.saude.scs.model;

import java.io.Serializable;

import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MapsId;
import javax.persistence.Table;

import org.hibernate.annotations.ForeignKey;

import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.scg.model.view.PessoaFisicaView;

@Entity
@Table(name = "scs_turma_representante", schema = "sc_scs")
public class TurmaRepresentante implements Serializable {

        private static final long serialVersionUID = 1L;

        private TurmaRepresentanteId turmaRepresentanteId = new TurmaRepresentanteId();
       
        private Turma turma;
        private PessoaFisicaView pessoa;
       
        @EmbeddedId
        public TurmaRepresentanteId getTurmaRepresentanteId() {
                return turmaRepresentanteId;
        }
        public void setTurmaRepresentanteId(TurmaRepresentanteId turmaRepresentanteId) {
                this.turmaRepresentanteId = turmaRepresentanteId;
        }
       
        @MapsId("sequencialTurma")
        @ManyToOne
        @ForeignKey(name = "fk_turmarepresen_turma")
        @JoinColumn(name = "seq_turma", referencedColumnName = "seq_turma", nullable = false, updatable = false, insertable = false)
        public Turma getTurma() {
                return turma;
        }
       
        public void setTurma(Turma turma) {
                if(VerificadorUtil.naoEstaNulo(turma)){
                        getTurmaRepresentanteId().setSequencialTurma(turma.getSequencial());
                }
                this.turma = turma;
        }
       
        @ManyToOne
        @ForeignKey(name = "fk_turmarepresen_pessoafisica")
        @JoinColumn(name = "seq_pessoa", referencedColumnName = "seq_pessoa", insertable = false, updatable = false, nullable = false)
        public PessoaFisicaView getPessoa() {
                return pessoa;
        }
       
        public void setPessoa(PessoaFisicaView pessoa) {
                if(VerificadorUtil.naoEstaNulo(pessoa) && VerificadorUtil.naoEstaNulo(pessoa.getSequencialPessoa())){
                        turmaRepresentanteId.setSequencialPessoa(pessoa.getSequencialPessoa());
                }
                this.pessoa = pessoa;
        }
       
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result
                                + ((turmaRepresentanteId == null) ? 0 : turmaRepresentanteId.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;
                TurmaRepresentante other = (TurmaRepresentante) obj;
                if (turmaRepresentanteId == null) {
                        if (other.turmaRepresentanteId != null)
                                return false;
                } else if (!turmaRepresentanteId.equals(other.turmaRepresentanteId))
                        return false;
                return true;
        }
       
}