Subversion Repositories Integrator Subversion

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
325 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
 
5
import javax.persistence.EmbeddedId;
6
import javax.persistence.Entity;
7
import javax.persistence.JoinColumn;
8
import javax.persistence.ManyToOne;
9
import javax.persistence.MapsId;
10
import javax.persistence.Table;
11
import javax.persistence.Transient;
12
 
13
import org.hibernate.annotations.ForeignKey;
14
 
15
import br.com.ec.core.generic.identidade.Identidade;
16
import br.com.ec.core.util.VerificadorUtil;
17
 
18
@Entity
19
@Table(name="sec_pessoa_papel", schema="sc_sec")
20
public class PessoaPapel implements Serializable, Identidade {
21
 
22
        private static final long serialVersionUID = 1L;
23
 
24
        private PessoaPapelId pessoaPapelId;
25
        private Pessoa pessoa;
26
        private Papel papel;
27
 
28
        public PessoaPapel() {
29
                this.pessoaPapelId = new PessoaPapelId();
30
        }
31
 
32
        public PessoaPapel(PessoaPapelId pessoaPapelId) {
33
                this.pessoaPapelId = pessoaPapelId;
34
        }
35
 
36
        public PessoaPapel(Pessoa pessoa, Papel papel) {
37
                pessoaPapelId = new PessoaPapelId();
38
                setPessoa(pessoa);
39
                setPapel(papel);
40
        }
41
 
42
        @Override
43
        @Transient
44
        public Object getId() {
45
                return getPessoaPapelId();
46
        }
47
        @Override
48
        public void setId(Object id) {
49
                this.pessoaPapelId = (PessoaPapelId) id;
50
        }
51
 
52
        @EmbeddedId
53
        public PessoaPapelId getPessoaPapelId() {
54
                return pessoaPapelId;
55
        }
56
        public void setPessoaPapelId(PessoaPapelId pessoaPapelId) {
57
                this.pessoaPapelId = pessoaPapelId;
58
        }
59
 
60
        @ManyToOne
61
        @ForeignKey(name="fk_pessoa_pessoapapel")
62
        @MapsId(value="sequencialPessoa")
63
        @JoinColumn(name = "seq_pessoa", nullable = false)
64
        public Pessoa getPessoa() {
65
                return pessoa;
66
        }
67
        public void setPessoa(Pessoa pessoa) {
68
                if (VerificadorUtil.naoEstaNulo(pessoa)) {
69
                        pessoaPapelId.setSequencialPessoa(pessoa.getSequencial());
70
                }
71
                this.pessoa = pessoa;
72
        }
73
 
74
        @ManyToOne
75
        @ForeignKey(name="fk_papel_pessoapapel")
76
        @MapsId(value="codigoPapel")
77
        @JoinColumn(name = "cod_papel", nullable=false)
78
        public Papel getPapel() {
79
                return papel;
80
        }
81
        public void setPapel(Papel papel) {
82
                if (VerificadorUtil.naoEstaNulo(papel)) {
83
                        pessoaPapelId.setCodigoPapel(papel.getCodigo());
84
                }
85
                this.papel = papel;
86
        }
87
 
88
        @Override
89
        public int hashCode() {
90
                final int prime = 31;
91
                int result = 1;
92
                result = prime * result + ((pessoaPapelId == null) ? 0 : pessoaPapelId.hashCode());
93
                return result;
94
        }
95
 
96
        @Override
97
        public boolean equals(Object obj) {
98
                if (this == obj)
99
                        return true;
100
                if (obj == null)
101
                        return false;
102
                if (getClass() != obj.getClass())
103
                        return false;
104
                PessoaPapel other = (PessoaPapel) obj;
105
                if (pessoaPapelId == null) {
106
                        if (other.pessoaPapelId != null)
107
                                return false;
108
                } else if (!pessoaPapelId.equals(other.pessoaPapelId))
109
                        return false;
110
                return true;
111
        }
112
 
113
}