Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
106 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
557 blopes 4
import java.util.Date;
106 espaco 5
 
6
import javax.persistence.Column;
7
import javax.persistence.Entity;
8
import javax.persistence.GeneratedValue;
9
import javax.persistence.GenerationType;
10
import javax.persistence.Id;
11
import javax.persistence.JoinColumn;
12
import javax.persistence.ManyToOne;
13
import javax.persistence.SequenceGenerator;
14
import javax.persistence.Table;
15
import javax.persistence.Transient;
16
import javax.validation.constraints.NotNull;
17
import javax.validation.constraints.Size;
18
 
19
import org.hibernate.annotations.ForeignKey;
20
import org.hibernate.validator.constraints.NotEmpty;
21
 
195 espaco 22
import br.com.ec.core.interfaces.Alterar;
23
import br.com.ec.core.interfaces.Cadastrar;
24
import br.com.ec.core.util.StringUtil;
25
import br.com.ec.core.util.VerificadorUtil;
106 espaco 26
 
27
 
28
@Entity
29
@Table(name="sec_modelo", schema="sc_sec")
30
public class Modelo implements Serializable, Comparable<Modelo> {
31
 
32
        private static final long serialVersionUID = 1L;
33
 
34
        private Long sequencial;
35
        private Marca marca;
36
        private String descricao;
37
        private String descricaoTecnica;
38
        private String descricaoEtiqueta;
39
        private String descricaoLocalizacao;
40
        private Boolean indicadorFavorito;
665 blopes 41
//      private Boolean indicadorSuperFavorito; // NÃO SAEM DOS FAVORITOS AUTOMATICAMENTE
557 blopes 42
        private Date dataCadastro;
106 espaco 43
        private Boolean ativo;
44
 
45
        public Modelo() {}
46
 
47
        public Modelo(Marca marca) {
48
                this.marca = marca;
49
        }
50
 
51
        @Id
52
        @SequenceGenerator(name = "sec_modelo_seq_modelo_seq") //TODO: ALTERAR NOME DA SEQUENCE
53
        @GeneratedValue(strategy = GenerationType.IDENTITY)
54
        @Column(name="seq_modelo", nullable=false)
55
        public Long getSequencial() {
56
                return sequencial;
57
        }
58
        public void setSequencial(Long sequencial) {
59
                this.sequencial = sequencial;
60
        }
61
 
62
        @ManyToOne
63
        @ForeignKey(name="fk_modelo_marca")
64
        @JoinColumn(name = "seq_marca", referencedColumnName="seq_marca", nullable=true)
65
        public Marca getMarca() {
66
                return marca;
67
        }
68
        public void setMarca(Marca marca) {
69
                this.marca = marca;
70
        }
71
 
72
        @Column(name="dsc_modelo")
73
        @Size(max = 255, message = "Limite de caracteres ultrapassado: Descrição")
74
        @NotEmpty(message="Obrigatório informar a descrição", groups={Cadastrar.class, Alterar.class})
75
        public String getDescricao() {
76
                return descricao;
77
        }
78
        public void setDescricao(String descricao) {
79
                this.descricao = StringUtil.setarUpperCaseComTrim(descricao);
80
        }
81
 
82
        @Column(name="dsc_tecnica")
83
        @Size(max = 255, message = "Limite de caracteres ultrapassado: Descrição Técnica")
84
        public String getDescricaoTecnica() {
85
                return descricaoTecnica;
86
        }
87
        public void setDescricaoTecnica(String descricaoTecnica) {
88
                this.descricaoTecnica = StringUtil.setarUpperCaseComTrim(descricaoTecnica);
89
        }
90
 
91
        @Column(name="dsc_etiqueta")
92
        @Size(max = 20, message = "Limite de caracteres ultrapassado: Descrição da Etiqueta")
93
        @NotEmpty(message="Obrigatório informar a descrição da etiqueta", groups={Cadastrar.class, Alterar.class})
94
        public String getDescricaoEtiqueta() {
95
                return descricaoEtiqueta;
96
        }
97
        public void setDescricaoEtiqueta(String descricaoEtiqueta) {
98
                this.descricaoEtiqueta = StringUtil.setarUpperCaseComTrim(descricaoEtiqueta);
99
        }
100
 
101
        @Column(name="dsc_localizacao")
102
        @Size(max = 20, message = "Limite de caracteres ultrapassado: Localização")
103
        public String getDescricaoLocalizacao() {
104
                return descricaoLocalizacao;
105
        }
106
        public void setDescricaoLocalizacao(String descricaoLocalizacao) {
107
                this.descricaoLocalizacao = StringUtil.setarUpperCaseComTrim(descricaoLocalizacao);
108
        }
109
 
110
        @Column(name="ind_favorito")
111
        @NotNull(message="Obrigatório informar o indicador de favorito", groups={Cadastrar.class, Alterar.class})
112
        public Boolean getIndicadorFavorito() {
113
                return indicadorFavorito;
114
        }
115
        public void setIndicadorFavorito(Boolean indicadorFavorito) {
116
                this.indicadorFavorito = indicadorFavorito;
117
        }
118
 
665 blopes 119
        /*
120
        @Column(name="ind_superfavorito")
121
        @NotNull(message="Obrigatório informar o indicador de super favorito", groups={Cadastrar.class, Alterar.class})
122
        public Boolean getIndicadorSuperFavorito() {
123
                return indicadorSuperFavorito;
124
        }
125
        public void setIndicadorSuperFavorito(Boolean indicadorSuperFavorito) {
126
                this.indicadorSuperFavorito = indicadorSuperFavorito;
127
        }
128
        */
129
 
557 blopes 130
        @Column(name="dat_cadastro")
131
        @NotNull(message="Obrigatório informar a data de cadastro", groups={Cadastrar.class, Alterar.class})
132
        public Date getDataCadastro() {
133
                return dataCadastro;
134
        }
135
        public void setDataCadastro(Date dataCadastro) {
136
                this.dataCadastro = dataCadastro;
137
        }
138
 
106 espaco 139
        @Column(name="ind_ativo", nullable=false)
140
        public Boolean getAtivo() {
141
                return ativo;
142
        }
143
        public void setAtivo(Boolean ativo) {
144
                this.ativo = ativo;
145
        }
146
 
147
        @Transient
148
        public String getDescricaoDaMarca() {
149
                return VerificadorUtil.naoEstaNulo(marca)? marca.getDescricao() : null;
150
        }
151
 
152
        @Transient
153
        public String getDescricaoComDescricaoTecnica() {
154
                return getDescricao() + getDescricaoTecnicaComParenteses();
155
        }
156
 
157
        @Transient
158
        public String getDescricaoTecnicaComParenteses() {
159
                return VerificadorUtil.naoEstaNuloOuVazio(getDescricaoTecnica())? " (" + getDescricaoTecnica() + ") " : "";
160
        }
161
 
162
        @Override
163
        public int hashCode() {
164
                final int prime = 31;
165
                int result = 1;
166
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
167
                return result;
168
        }
169
 
170
        @Override
171
        public boolean equals(Object obj) {
172
                if (this == obj)
173
                        return true;
174
                if (obj == null)
175
                        return false;
176
                if (getClass() != obj.getClass())
177
                        return false;
178
                Modelo other = (Modelo) obj;
179
                if (sequencial == null) {
180
                        if (other.sequencial != null)
181
                                return false;
182
                } else if (!sequencial.equals(other.sequencial))
183
                        return false;
184
                return true;
185
        }
186
 
187
        @Override
188
        public int compareTo(Modelo modelo) {
189
                if (VerificadorUtil.naoEstaNulo(modelo)) {
190
                        int comparacao = this.getDescricaoDaMarca().compareTo(modelo.getDescricaoDaMarca());
191
                        if (comparacao != 0) return comparacao;
192
                        return this.getDescricao().compareTo(modelo.getDescricao());
193
                }
194
                return 0;
195
        }
196
 
197
}