Subversion Repositories Integrator Subversion

Rev

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