Subversion Repositories Integrator Subversion

Rev

Rev 259 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 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;
325 espaco 11
import javax.validation.constraints.NotNull;
259 espaco 12
 
13
import org.hibernate.annotations.ForeignKey;
14
 
325 espaco 15
import br.com.ec.core.interfaces.Alterar;
16
import br.com.ec.core.interfaces.Cadastrar;
259 espaco 17
import br.com.ec.core.util.VerificadorUtil;
18
 
19
@Entity
20
@Table(name="sec_usuario_loja", schema="sc_sec")
21
public class UsuarioLoja implements Serializable {
22
 
23
        private static final long serialVersionUID = 1L;
24
        private UsuarioLojaId usuarioLojaId = new UsuarioLojaId();
25
        private Usuario usuario;
26
        private Loja loja;
27
 
28
        public UsuarioLoja() {}
29
 
30
        public UsuarioLoja(Usuario usuario, Loja loja) {
31
                this.usuario = usuario;
32
                this.loja = loja;
33
        }
34
 
35
        @EmbeddedId
36
        public UsuarioLojaId getUsuarioLojaId() {
37
                return usuarioLojaId;
38
        }
39
        public void setUsuarioLojaId(UsuarioLojaId usuarioLojaId) {
40
                this.usuarioLojaId = usuarioLojaId;
41
        }
42
 
43
        @MapsId("sequencialUsuario")
44
        @ManyToOne
45
        @ForeignKey(name="fk_usuarioloja_usuario")
46
        @JoinColumn(name = "seq_usuario", nullable = false)
325 espaco 47
        @NotNull(message="Obrigatório informar o usuário", groups={Cadastrar.class, Alterar.class})
259 espaco 48
        public Usuario getUsuario() {
49
                if (VerificadorUtil.naoEstaNulo(usuario)) {
50
                        usuarioLojaId.setSequencialUsuario(usuario.getSequencial());
51
                }
52
                return usuario;
53
        }
54
        public void setUsuario(Usuario usuario) {
55
                this.usuario = usuario;
56
        }
57
 
58
        @MapsId("sequencialLoja")
59
        @ManyToOne
60
        @ForeignKey(name="fk_usuarioloja_loja")
61
        @JoinColumn(name = "seq_loja", nullable=false)
325 espaco 62
        @NotNull(message="Obrigatório informar a loja", groups={Cadastrar.class, Alterar.class})
259 espaco 63
        public Loja getLoja() {
64
                if (VerificadorUtil.naoEstaNulo(loja)) {
65
                        usuarioLojaId.setSequencialLoja(loja.getSequencial());
66
                }
67
                return loja;
68
        }
69
        public void setLoja(Loja loja) {
70
                this.loja = loja;
71
        }
72
 
73
        @Override
74
        public int hashCode() {
75
                final int prime = 31;
76
                int result = 1;
77
                result = prime * result + ((usuarioLojaId == null) ? 0 : usuarioLojaId.hashCode());
78
                return result;
79
        }
80
 
81
        @Override
82
        public boolean equals(Object obj) {
83
                if (this == obj)
84
                        return true;
85
                if (obj == null)
86
                        return false;
87
                if (getClass() != obj.getClass())
88
                        return false;
89
                UsuarioLoja other = (UsuarioLoja) obj;
90
                if (usuarioLojaId == null) {
91
                        if (other.usuarioLojaId != null)
92
                                return false;
93
                } else if (!usuarioLojaId.equals(other.usuarioLojaId))
94
                        return false;
95
                return true;
96
        }
97
 
98
}