Subversion Repositories Integrator Subversion

Rev

Rev 106 | 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
import java.util.ArrayList;
5
import java.util.Collections;
6
import java.util.Comparator;
7
import java.util.Date;
8
import java.util.HashSet;
9
import java.util.List;
10
import java.util.Set;
11
 
12
import javax.persistence.CascadeType;
13
import javax.persistence.Column;
14
import javax.persistence.Entity;
15
import javax.persistence.GeneratedValue;
16
import javax.persistence.GenerationType;
17
import javax.persistence.Id;
18
import javax.persistence.JoinColumn;
19
import javax.persistence.ManyToOne;
20
import javax.persistence.OneToMany;
21
import javax.persistence.SequenceGenerator;
22
import javax.persistence.Table;
23
import javax.persistence.Transient;
24
import javax.validation.constraints.NotNull;
25
 
26
import org.hibernate.annotations.ForeignKey;
27
 
195 espaco 28
import br.com.ec.core.interfaces.Alterar;
29
import br.com.ec.core.interfaces.Cadastrar;
30
import br.com.ec.core.util.VerificadorUtil;
106 espaco 31
 
32
@Entity
33
@Table(name="sec_avaliacao", schema="sc_sec")
34
public class Avaliacao implements Serializable {
35
 
36
        private static final long serialVersionUID = 1L;
37
 
38
        private Long sequencial;
39
        private Vigencia vigencia;
40
        private Date dataInicioResultado;
41
        private Date dataFimResultado;
42
 
43
        private Set<AvaliacaoFuncionario> participantes;
44
        private Set<AvaliacaoLoja> lojasParticipantes;
45
 
46
        public Avaliacao() {
47
                participantes = new HashSet<AvaliacaoFuncionario>();
48
                lojasParticipantes = new HashSet<AvaliacaoLoja>();
49
        }
50
 
51
        @Id
52
        @SequenceGenerator(name = "sq_avaliacao")
53
        @GeneratedValue(strategy = GenerationType.IDENTITY)
54
        @Column(name="seq_avaliacao", 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_avaliacao_vigencia")
64
        @NotNull(message = "Parâmetro obrigatório não preenchido: Vigência", groups = {Cadastrar.class, Alterar.class})
65
        @JoinColumn(name = "seq_vigencia", referencedColumnName="seq_vigencia", nullable=true)
66
        public Vigencia getVigencia() {
67
                return vigencia;
68
        }
69
        public void setVigencia(Vigencia vigencia) {
70
                this.vigencia = vigencia;
71
        }
72
 
73
        @Column(name="dth_inicio_resultado", nullable=false)
74
        public Date getDataInicioResultado() {
75
                return dataInicioResultado;
76
        }
77
        public void setDataInicioResultado(Date dataInicioResultado) {
78
                this.dataInicioResultado = dataInicioResultado;
79
        }
80
 
81
        @Column(name="dth_fim_resultado", nullable=false)
82
        public Date getDataFimResultado() {
83
                return dataFimResultado;
84
        }
85
        public void setDataFimResultado(Date dataFimResultado) {
86
                this.dataFimResultado = dataFimResultado;
87
        }
88
 
89
        @OneToMany(mappedBy="avaliacao", cascade=CascadeType.ALL, orphanRemoval=true)
90
        public Set<AvaliacaoFuncionario> getParticipantes() {
91
                return participantes;
92
        }
93
        public void setParticipantes(Set<AvaliacaoFuncionario> participantes) {
94
                this.participantes = participantes;
95
        }
96
 
97
        @OneToMany(mappedBy="avaliacao", cascade=CascadeType.ALL, orphanRemoval=true)
98
        public Set<AvaliacaoLoja> getLojasParticipantes() {
99
                return lojasParticipantes;
100
        }
101
        public void setLojasParticipantes(Set<AvaliacaoLoja> lojasParticipantes) {
102
                this.lojasParticipantes = lojasParticipantes;
103
        }
104
 
105
        @Override
106
        public int hashCode() {
107
                final int prime = 31;
108
                int result = 1;
109
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
110
                return result;
111
        }
112
 
113
        @Override
114
        public boolean equals(Object obj) {
115
                if (this == obj)
116
                        return true;
117
                if (obj == null)
118
                        return false;
119
                if (getClass() != obj.getClass())
120
                        return false;
121
                Avaliacao other = (Avaliacao) obj;
122
                if (sequencial == null) {
123
                        if (other.sequencial != null) {
124
                                return false;
125
                        } else {return false;}
126
                } else if (!sequencial.equals(other.sequencial))
127
                        return false;
128
                return true;
129
        }
130
 
131
        @Transient
132
        public Long getSequencialDaVigencia() {
133
                return VerificadorUtil.naoEstaNulo(getVigencia())? getVigencia().getSequencial() : null;
134
        }
135
 
136
        @Transient
137
        public String getDescricaoDaVigencia() {
138
                return VerificadorUtil.naoEstaNulo(getVigencia())? getVigencia().getDescricao() : null;
139
        }
140
 
141
        @Transient
142
        public List<AvaliacaoFuncionario> getParticipantesOrdenados() {
143
                List<AvaliacaoFuncionario> participantesOrdenados = null;
144
                if (VerificadorUtil.naoEstaNulo(getParticipantes())) {
145
                        participantesOrdenados = new ArrayList<AvaliacaoFuncionario>(getParticipantes());
146
                        Collections.sort(participantesOrdenados, new Comparator<AvaliacaoFuncionario>() {
147
                                public int compare(AvaliacaoFuncionario p1, AvaliacaoFuncionario p2) {
148
                                        return p1.getFuncionario().getNomeDaPessoa().compareTo(p2.getFuncionario().getNomeDaPessoa());
149
                                };
150
                        });
151
                }
152
                return participantesOrdenados;
153
        }
154
 
155
        @Transient
156
        public List<AvaliacaoLoja> getLojasParticipantesOrdenadas() {
157
                List<AvaliacaoLoja> lojasOrdenadas = null;
158
                if (VerificadorUtil.naoEstaNulo(getLojasParticipantes())) {
159
                        lojasOrdenadas = new ArrayList<AvaliacaoLoja>(getLojasParticipantes());
160
                        Collections.sort(lojasOrdenadas, new Comparator<AvaliacaoLoja>() {
161
                                public int compare(AvaliacaoLoja p1, AvaliacaoLoja p2) {
162
                                        return p1.getLoja().getDescricao().compareTo(p2.getLoja().getDescricao());
163
                                };
164
                        });
165
                }
166
                return lojasOrdenadas;
167
        }
168
 
169
}