Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.gov.al.saude.srv.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.SequenceGenerator;
11
import javax.persistence.Table;
12
import javax.persistence.Transient;
13
import javax.validation.constraints.NotNull;
14
 
15
import org.hibernate.validator.constraints.NotEmpty;
16
 
17
import br.gov.al.saude.framework.core.generic.identidade.Identidade;
18
import br.gov.al.saude.framework.core.interfaces.Alterar;
19
import br.gov.al.saude.framework.core.interfaces.Cadastrar;
20
import br.gov.al.saude.framework.core.util.VerificadorUtil;
21
import br.gov.al.saude.srv.model.enums.TipoFuncao;
22
 
23
@Entity
24
@Table(name="srv_funcao", schema="sc_srv")
25
public class Funcao implements Serializable, Identidade {
26
 
27
        private static final long serialVersionUID = 1L;
28
        private Integer codigo;
29
        private String descricao;
30
        private String nivel;
31
        private TipoFuncao tipo;
32
        private Long quantidadeVagas;
33
        private Boolean ativo;
34
 
35
        @Id
36
        @GeneratedValue(generator = "FUNCAO_GENERATOR", strategy = GenerationType.SEQUENCE)
37
        @SequenceGenerator(name = "FUNCAO_GENERATOR", sequenceName = "sq_funcao", initialValue = 1, allocationSize = 1)
38
        @Column(name="cod_funcao", nullable=false)
39
        public Integer getCodigo() {
40
                return codigo;
41
        }
42
        public void setCodigo(Integer codigo) {
43
                this.codigo = codigo;
44
        }
45
 
46
        @Column(name="dsc_funcao", length=100, nullable=false)
47
        @NotNull(message="Obrigatório informar descrição.", groups={Cadastrar.class, Alterar.class})
48
        @NotEmpty(message="Obrigatório informar descrição.", groups={Cadastrar.class, Alterar.class})
49
        public String getDescricao() {
50
                return descricao;
51
        }
52
        public void setDescricao(String descricao) {
53
                this.descricao = descricao;
54
        }
55
 
56
        @Column(name="dsc_nivel_funcao", length=4, nullable=false)
57
        @NotNull(message="Obrigatório informar nível.", groups={Cadastrar.class, Alterar.class})
58
        @NotEmpty(message="Obrigatório informar nível.", groups={Cadastrar.class, Alterar.class})
59
        public String getNivel() {
60
                return nivel;
61
        }
62
        public void setNivel(String nivel) {
63
                this.nivel = nivel;
64
        }
65
 
66
        @Column(name="tip_funcao", nullable=false)
67
        @NotNull(message="Obrigatório informar tipo da função.", groups={Cadastrar.class, Alterar.class})
68
        @NotEmpty(message="Obrigatório informar tipo da função.", groups={Cadastrar.class, Alterar.class})
69
        public String getTipo() {
70
                return VerificadorUtil.naoEstaNulo(getTipoFuncao()) ? getTipoFuncao().getValue(): null;
71
        }
72
        public void setTipo(String tipo) {
73
                this.tipo = TipoFuncao.parse(tipo);
74
        }
75
 
76
        @Transient
77
        public TipoFuncao getTipoFuncao() {
78
                return tipo;
79
        }
80
 
81
        @Column(name="num_quantidade_vagas", length=4)
82
        public Long getQuantidadeVagas() {
83
                return quantidadeVagas;
84
        }
85
        public void setQuantidadeVagas(Long quantidadeVagas) {
86
                this.quantidadeVagas = quantidadeVagas;
87
        }
88
 
89
        @Column(name="ind_ativo", insertable = false)
90
        public Boolean getAtivo() {
91
                return ativo;
92
        }      
93
        public void setAtivo(Boolean ativo) {
94
                this.ativo = ativo;
95
        }
96
 
97
        @Transient
98
        public String getDescricaoAtivo() {
99
                return getAtivo() ? "SIM" : "NÃO";
100
        }
101
 
102
        @Transient
103
        public String getDescricaoTipoFuncao() {
104
                return VerificadorUtil.naoEstaNulo(getTipoFuncao()) ? getTipoFuncao().getDescricao() : null;
105
        }
106
 
107
        @Transient
108
        public Boolean isTipoFuncaoGratificada() {
109
                return TipoFuncao.FUNCAO_GRATIFICADA.equals(getTipoFuncao());
110
        }
111
 
112
        @Transient
113
        public Boolean isTipoCargoComissioando() {
114
                return TipoFuncao.CARGO_COMISSIONADO.equals(getTipoFuncao());
115
        }
116
 
117
        @Transient
118
        @Override
119
        public Object getId() {
120
                return getCodigo();
121
        }
122
        @Override
123
        public void setId(Object codigo) {
124
                setCodigo((Integer) codigo);
125
        }
126
 
127
        @Override
128
        public int hashCode() {
129
                final int prime = 31;
130
                int result = 1;
131
                result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
132
                return result;
133
        }
134
 
135
        @Override
136
        public boolean equals(Object obj) {
137
                if (this == obj)
138
                        return true;
139
                if (obj == null)
140
                        return false;
141
                if (getClass() != obj.getClass())
142
                        return false;
143
                Funcao other = (Funcao) obj;
144
                if (codigo == null) {
145
                        if (other.codigo != null)
146
                                return false;
147
                } else if (!codigo.equals(other.codigo))
148
                        return false;
149
                return true;
150
        }
151
 
152
}