Subversion Repositories Integrator Subversion

Rev

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

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