Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
582 blopes 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
 
5
import javax.persistence.Column;
6
import javax.persistence.EmbeddedId;
7
import javax.persistence.Entity;
8
import javax.persistence.JoinColumn;
9
import javax.persistence.ManyToOne;
10
import javax.persistence.Table;
11
import javax.persistence.Transient;
12
import javax.validation.constraints.Size;
13
 
14
import org.hibernate.annotations.ForeignKey;
15
 
16
import br.com.ec.core.generic.identidade.Identidade;
17
import br.com.ec.core.util.VerificadorUtil;
18
 
19
@Entity
20
@Table(name="sec_fornecedor_produto", schema="sc_sec")
21
public class FornecedorProduto implements Serializable, Identidade {
22
 
23
        private static final long serialVersionUID = 1L;
24
 
25
        private FornecedorProdutoId fornecedorProdutoId;
26
        private Fornecedor fornecedor;
27
        private Produto produto;
28
        private Double valorCompra;
29
        private String identificador;
30
 
31
        public FornecedorProduto() {
32
                this.fornecedorProdutoId = new FornecedorProdutoId();
33
        }
34
 
35
        public FornecedorProduto(FornecedorProdutoId fornecedorProdutoId) {
36
                this.fornecedorProdutoId = fornecedorProdutoId;
37
        }
38
 
39
        public FornecedorProduto(Fornecedor fornecedor, Produto produto, Double valorCompra) {
40
                fornecedorProdutoId = new FornecedorProdutoId();
41
                setFornecedor(fornecedor);
42
                setProduto(produto);
43
                setValorCompra(valorCompra);
44
        }
45
 
46
        public FornecedorProduto(Fornecedor fornecedor, Produto produto, Double valorCompra, String identificadorProduto) {
47
                fornecedorProdutoId = new FornecedorProdutoId();
48
                setFornecedor(fornecedor);
49
                setProduto(produto);
50
                setValorCompra(valorCompra);
51
                setIdentificador(identificadorProduto);
52
        }
53
 
54
        @Override
55
        @Transient
56
        public Object getId() {
57
                return getFornecedorProdutoId();
58
        }
59
        @Override
60
        public void setId(Object id) {
61
                this.fornecedorProdutoId = (FornecedorProdutoId) id;
62
        }
63
 
64
        @EmbeddedId
65
        public FornecedorProdutoId getFornecedorProdutoId() {
66
                return fornecedorProdutoId;
67
        }
68
        public void setFornecedorProdutoId(FornecedorProdutoId fornecedorProdutoId) {
69
                this.fornecedorProdutoId = fornecedorProdutoId;
70
        }
71
 
72
        @ManyToOne
73
        @ForeignKey(name="fk_fornecproduto_fornecedor")
74
        @JoinColumn(name = "seq_fornecedor", insertable=false, updatable=false, nullable = false)
75
        public Fornecedor getFornecedor() {
76
                return fornecedor;
77
        }
78
        public void setFornecedor(Fornecedor fornecedor) {
79
                if (VerificadorUtil.naoEstaNulo(fornecedor)) {
80
                        fornecedorProdutoId.setSequencialFornecedor(fornecedor.getSequencial());
81
                }
82
                this.fornecedor = fornecedor;
83
        }
84
 
85
        @ManyToOne
86
        @ForeignKey(name="fk_produtoloja_produto")
87
        @JoinColumn(name = "seq_produto", insertable=false, updatable=false, nullable = false)
88
        public Produto getProduto() {
89
                return produto;
90
        }
91
        public void setProduto(Produto produto) {
92
                if (VerificadorUtil.naoEstaNulo(produto)) {
93
                        fornecedorProdutoId.setSequencialProduto(produto.getSequencial());
94
                }
95
                this.produto = produto;
96
        }
97
 
98
        @Column(name="val_compra")
99
        public Double getValorCompra() {
100
                return valorCompra;
101
        }
102
        public void setValorCompra(Double valorCompra) {
103
                this.valorCompra = valorCompra;
104
        }
105
 
106
        @Column(name="dsc_identificador")
107
        @Size(max = 100, message = "Limite de caracteres ultrapassado: Identificador")
108
        public String getIdentificador() {
109
                return identificador;
110
        }
111
        public void setIdentificador(String identificador) {
112
                this.identificador = identificador;
113
        }
114
 
115
        @Transient
116
        public Long getSequencialDoFornecedor() {
117
                return VerificadorUtil.naoEstaNulo(fornecedor)? fornecedor.getSequencial() : null;
118
        }
119
 
120
        @Transient
121
        public Long getSequencialDoProduto() {
122
                return VerificadorUtil.naoEstaNulo(produto)? produto.getSequencial() : null;
123
        }
124
 
125
        @Transient
126
        public Modelo getModeloDoProduto() {
127
                return VerificadorUtil.naoEstaNulo(produto)? VerificadorUtil.naoEstaNulo(produto.getModelo())? produto.getModelo() : null : null;
128
        }
129
 
130
        @Override
131
        public int hashCode() {
132
                final int prime = 31;
133
                int result = 1;
134
                result = prime * result + ((fornecedorProdutoId == null) ? 0 : fornecedorProdutoId.hashCode());
135
                return result;
136
        }
137
 
138
        @Override
139
        public boolean equals(Object obj) {
140
                if (this == obj)
141
                        return true;
142
                if (obj == null)
143
                        return false;
144
                if (getClass() != obj.getClass())
145
                        return false;
146
                FornecedorProduto other = (FornecedorProduto) obj;
147
                if (fornecedorProdutoId == null) {
148
                        if (other.fornecedorProdutoId != null)
149
                                return false;
150
                } else if (!fornecedorProdutoId.equals(other.fornecedorProdutoId))
151
                        return false;
152
                return true;
153
        }
154
 
155
}