package br.gov.servicos.v3.schema;
import br.gov.servicos.foundation.exceptions.ConteudoNaoEncontrado;
import com.github.slugify.Slugify;
import lombok.SneakyThrows;
import org.springframework.stereotype.Component;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;
import java.text.ParseException;
import java.util.Locale;
import java.util.stream.Stream;
@XmlType(name = "AreaDeInteresse")
@XmlEnum
public enum AreaDeInteresse {
@XmlEnumValue("Administração")
VCGE2_ADMINISTRACAO("Administração", "file-text-o"),
@XmlEnumValue("Agropecuária")
VCGE2_AGROPECUARIA("Agropecuária", "tree"),
@XmlEnumValue("Água")
VCGE2_AGUA("Água", "tint"),
@XmlEnumValue("Clima")
VCGE2_CLIMA("Clima", "sun-o"),
@XmlEnumValue("Comércio e Serviços")
VCGE2_COMERCIO_E_SERVICOS("Comércio e Serviços", "credit-card"),
@XmlEnumValue("Comunicações")
VCGE2_COMUNICACOES("Comunicações", "comments-o"),
@XmlEnumValue("Cultura")
VCGE2_CULTURA("Cultura", "book"),
@XmlEnumValue("Defesa Nacional")
VCGE2_DEFESA_NACIONAL("Defesa Nacional", "fighter-jet"),
@XmlEnumValue("Economia e Finanças")
VCGE2_ECONOMIA_E_FINANCAS("Economia e Finanças", "calculator"),
@XmlEnumValue("Educação")
VCGE2_EDUCACAO("Educação", "graduation-cap"),
@XmlEnumValue("Energia")
VCGE2_ENERGIA("Energia", "lightbuld-o"),
@XmlEnumValue("Energia elétrica")
VCGE2_ENERGIA_ELETRICA("Energia elétrica", "bolt"),
@XmlEnumValue("Esporte e Lazer")
VCGE2_ESPORTE_E_LAZER("Esporte e Lazer", "futbol-o"),
@XmlEnumValue("Habitação")
VCGE2_HABITACAO("Habitação", "home"),
@XmlEnumValue("Indústria")
VCGE2_INDUSTRIA("Indústria", "industry"),
@XmlEnumValue("Meio ambiente")
VCGE2_MEIO_AMBIENTE("Meio ambiente", "pagelines"),
@XmlEnumValue("Pesquisa e Desenvolvimento")
VCGE2_PESQUISA_E_DESENVOLVIMENTO("Pesquisa e Desenvolvimento", "flask"),
@XmlEnumValue("Previdência Social")
VCGE2_PREVIDENCIA_SOCIAL("Previdência Social", "user"),
@XmlEnumValue("Proteção Social")
VCGE2_PROTECAO_SOCIAL("Proteção Social", "users"),
@XmlEnumValue("Relações Internacionais")
VCGE2_RELACOES_INTERNACIONAIS("Relações Internacionais", "globe"),
@XmlEnumValue("Saneamento")
VCGE2_SANEAMENTO("Saneamento", "wrench"),
@XmlEnumValue("Saúde")
VCGE2_SAUDE("Saúde", "hospital-o"),
@XmlEnumValue("Segurança e Ordem Pública")
VCGE2_SEGURANCA_E_ORDEM_PUBLICA("Segurança e Ordem Pública", "shield"),
@XmlEnumValue("Trabalho")
VCGE2_TRABALHO("Trabalho", "briefcase"),
@XmlEnumValue("Transportes")
VCGE2_TRANSPORTES("Transportes", "bus"),
@XmlEnumValue("Urbanismo")
VCGE2_URBANISMO("Urbanismo", "building-o"),
//--------------
@XmlEnumValue("Abastecimento")
VCGE2_ABASTECIMENTO("Abastecimento"),
@XmlEnumValue("Assistência Hospitalar e Ambulatorial")
VCGE2_ASSISTENCIA_HOSPITALAR_E_AMBULATORIAL("Assistência Hospitalar e Ambulatorial"),
@XmlEnumValue("Assistência ao Idoso")
VCGE2_ASSISTENCIA_AO_IDOSO("Assistência ao Idoso"),
@XmlEnumValue("Assistência ao Portador de Deficiência")
VCGE2_ASSISTENCIA_AO_PORTADOR_DE_DEFICIENCIA("Assistência ao Portador de Deficiência"),
@XmlEnumValue("Assistência à Criança e ao Adolescente")
VCGE2_ASSISTENCIA_A_CRIANCA_E_AO_ADOLESCENTE("Assistência à Criança e ao Adolescente"),
@XmlEnumValue("Atendimento básico")
VCGE2_ATENDIMENTO_BASICO("Atendimento básico"),
@XmlEnumValue("Biodiversidade")
VCGE2_BIODIVERSIDADE("Biodiversidade"),
@XmlEnumValue("Cidadania")
VCGE2_CIDADANIA("Cidadania"),
@XmlEnumValue("Combate a desigualdade")
VCGE2_COMBATE_A_DESIGUALDADE("Combate a desigualdade"),
@XmlEnumValue("Combate a epidemias")
VCGE2_COMBATE_A_EPIDEMIAS("Combate a epidemias"),
@XmlEnumValue("Combustíveis")
VCGE2_COMBUSTIVEIS("Combustíveis"),
@XmlEnumValue("Comercio externo")
VCGE2_COMERCIO_EXTERNO("Comercio externo"),
@XmlEnumValue("Compras governamentais")
VCGE2_COMPRAS_GOVERNAMENTAIS("Compras governamentais"),
@XmlEnumValue("Comunicações Postais")
VCGE2_COMUNICACOES_POSTAIS("Comunicações Postais"),
@XmlEnumValue("Cooperação Internacional")
VCGE2_COOPERACAO_INTERNACIONAL("Cooperação Internacional"),
@XmlEnumValue("Defesa Civil")
VCGE2_DEFESA_CIVIL("Defesa Civil"),
@XmlEnumValue("Defesa agropecuária")
VCGE2_DEFESA_AGROPECUARIA("Defesa agropecuária"),
@XmlEnumValue("Defesa do Consumidor")
VCGE2_DEFESA_DO_CONSUMIDOR("Defesa do Consumidor"),
@XmlEnumValue("Defesa militar")
VCGE2_DEFESA_MILITAR("Defesa militar"),
@XmlEnumValue("Difusão")
VCGE2_DIFUSAO("Difusão"),
@XmlEnumValue("Difusão Cultural")
VCGE2_DIFUSAO_CULTURAL("Difusão Cultural"),
@XmlEnumValue("Educação básica")
VCGE2_EDUCACAO_BASICA("Educação básica"),
@XmlEnumValue("Educação profissionalizante")
VCGE2_EDUCACAO_PROFISSIONALIZANTE("Educação profissionalizante"),
@XmlEnumValue("Educação superior")
VCGE2_EDUCACAO_SUPERIOR("Educação superior", "university"),
@XmlEnumValue("Empregabilidade")
VCGE2_EMPREGABILIDADE("Empregabilidade"),
@XmlEnumValue("Esporte comunitário")
VCGE2_ESPORTE_COMUNITARIO("Esporte comunitário"),
@XmlEnumValue("Esporte profissional")
VCGE2_ESPORTE_PROFISSIONAL("Esporte profissional"),
@XmlEnumValue("Fiscalização do Estado")
VCGE2_FISCALIZACAO_DO_ESTADO("Fiscalização do Estado"),
@XmlEnumValue("Fomento ao Trabalho")
VCGE2_FOMENTO_AO_TRABALHO("Fomento ao Trabalho"),
@XmlEnumValue("Habitação Rural")
VCGE2_HABITACAO_RURAL("Habitação Rural"),
@XmlEnumValue("Habitação Urbana")
VCGE2_HABITACAO_URBANA("Habitação Urbana"),
@XmlEnumValue("Infraestrutura Urbana")
VCGE2_INFRAESTRUTURA_URBANA("Infraestrutura Urbana"),
@XmlEnumValue("Lazer")
VCGE2_LAZER("Lazer"),
@XmlEnumValue("Medicamentos e aparelhos")
VCGE2_MEDICAMENTOS_E_APARELHOS("Medicamentos e aparelhos"),
@XmlEnumValue("Mineração")
VCGE2_MINERACAO("Mineração"),
@XmlEnumValue("Normalização e Qualidade")
VCGE2_NORMALIZACAO_E_QUALIDADE("Normalização e Qualidade"),
@XmlEnumValue("Operações de dívida pública")
VCGE2_OPERACOES_DE_DIVIDA_PUBLICA("Operações de dívida pública"),
@XmlEnumValue("Orçamento")
VCGE2_ORCAMENTO("Orçamento"),
@XmlEnumValue("Patrimônio")
VCGE2_PATRIMONIO("Patrimônio"),
@XmlEnumValue("Patrimônio Cultural")
VCGE2_PATRIMONIO_CULTURAL("Patrimônio Cultural"),
@XmlEnumValue("Planejamento")
VCGE2_PLANEJAMENTO("Planejamento"),
@XmlEnumValue("Policiamento")
VCGE2_POLICIAMENTO("Policiamento"),
@XmlEnumValue("Politica econômica")
VCGE2_POLITICA_ECONOMICA("Politica econômica"),
@XmlEnumValue("Preservação e Conservação Ambiental")
VCGE2_PRESERVACAO_E_CONSERVACAO_AMBIENTAL("Preservação e Conservação Ambiental"),
@XmlEnumValue("Previdência Básica")
VCGE2_PREVIDENCIA_BASICA("Previdência Básica"),
@XmlEnumValue("Previdência Complementar")
VCGE2_PREVIDENCIA_COMPLEMENTAR("Previdência Complementar"),
@XmlEnumValue("Produção Industrial")
VCGE2_PRODUCAO_INDUSTRIAL("Produção Industrial"),
@XmlEnumValue("Produção agropecuária")
VCGE2_PRODUCAO_AGROPECUARIA("Produção agropecuária"),
@XmlEnumValue("Propriedade Industrial")
VCGE2_PROPRIEDADE_INDUSTRIAL("Propriedade Industrial"),
@XmlEnumValue("Proteção e Benefícios ao Trabalhador")
VCGE2_PROTECAO_E_BENEFICIOS_AO_TRABALHADOR("Proteção e Benefícios ao Trabalhador"),
@XmlEnumValue("Recursos humanos")
VCGE2_RECURSOS_HUMANOS("Recursos humanos"),
@XmlEnumValue("Relações Diplomáticas")
VCGE2_RELACOES_DIPLOMATICAS("Relações Diplomáticas"),
@XmlEnumValue("Relações de Trabalho")
VCGE2_RELACOES_DE_TRABALHO("Relações de Trabalho"),
@XmlEnumValue("Saneamento Básico Rural")
VCGE2_SANEAMENTO_BASICO_RURAL("Saneamento Básico Rural"),
@XmlEnumValue("Saneamento Básico Urbano")
VCGE2_SANEAMENTO_BASICO_URBANO("Saneamento Básico Urbano"),
@XmlEnumValue("Serviços Públicos")
VCGE2_SERVICOS_PUBLICOS("Serviços Públicos"),
@XmlEnumValue("Serviços Urbanos")
VCGE2_SERVICOS_URBANOS("Serviços Urbanos"),
@XmlEnumValue("Sistema Financeiro")
VCGE2_SISTEMA_FINANCEIRO("Sistema Financeiro"),
@XmlEnumValue("Telecomunicações")
VCGE2_TELECOMUNICACOES("Telecomunicações"),
@XmlEnumValue("Transporte Aéreo")
VCGE2_TRANSPORTE_AEREO("Transporte Aéreo", "plane"),
@XmlEnumValue("Transporte Ferroviário")
VCGE2_TRANSPORTE_FERROVIARIO("Transporte Ferroviário", "train"),
@XmlEnumValue("Transporte Hidroviário")
VCGE2_TRANSPORTE_HIDROVIARIO("Transporte Hidroviário", "ship"),
@XmlEnumValue("Transporte Rodoviário")
VCGE2_TRANSPORTE_RODOVIARIO("Transporte Rodoviário", "truck"),
@XmlEnumValue("Turismo")
VCGE2_TURISMO("Turismo"),
@XmlEnumValue("Vigilância Sanitária")
VCGE2_VIGILANCIA_SANITARIA("Vigilância Sanitária"),
@XmlEnumValue("Abastecimento")
VCGE1_ABASTECIMENTO("Abastecimento"),
@XmlEnumValue("Administração financeira")
VCGE1_ADMINISTRACAO_FINANCEIRA("Administração financeira"),
@XmlEnumValue("Agricultura orgânica")
VCGE1_AGRICULTURA_ORGANICA("Agricultura orgânica"),
@XmlEnumValue("Agropecuária")
VCGE1_AGROPECUARIA("Agropecuária"),
@XmlEnumValue("Alimento")
VCGE1_ALIMENTO("Alimento"),
@XmlEnumValue("Ambiente e saúde")
VCGE1_AMBIENTE_E_SAUDE("Ambiente e saúde"),
@XmlEnumValue("Comunicações")
VCGE1_COMUNICACOES("Comunicações"),
@XmlEnumValue("Comércio e Serviços")
VCGE1_COMERCIO_E_SERVICOS("Comércio e Serviços"),
@XmlEnumValue("Economia e Finanças")
VCGE1_ECONOMIA_E_FINANCAS("Economia e Finanças"),
@XmlEnumValue("Educação")
VCGE1_EDUCACAO("Educação"),
@XmlEnumValue("Educação básica")
VCGE1_EDUCACAO_BASICA("Educação básica"),
@XmlEnumValue("Educação superior")
VCGE1_EDUCACAO_SUPERIOR("Educação superior"),
@XmlEnumValue("Educação à distância")
VCGE1_EDUCACAO_A_DISTANCIA("Educação à distância"),
@XmlEnumValue("Emergências e Urgências")
VCGE1_EMERGENCIAS_E_URGENCIAS("Emergências e Urgências"),
@XmlEnumValue("Encargos financeiros")
VCGE1_ENCARGOS_FINANCEIROS("Encargos financeiros"),
@XmlEnumValue("Esporte e Lazer")
VCGE1_ESPORTE_E_LAZER("Esporte e Lazer"),
@XmlEnumValue("Finanças")
VCGE1_FINANCAS("Finanças"),
@XmlEnumValue("Habitação")
VCGE1_HABITACAO("Habitação"),
@XmlEnumValue("Humanização na saúde")
VCGE1_HUMANIZACAO_NA_SAUDE("Humanização na saúde"),
@XmlEnumValue("Indústria")
VCGE1_INDUSTRIA("Indústria"),
@XmlEnumValue("Meio ambiente")
VCGE1_MEIO_AMBIENTE("Meio ambiente"),
@XmlEnumValue("Pecuária")
VCGE1_PECUARIA("Pecuária"),
@XmlEnumValue("Pessoa")
VCGE1_PESSOA("Pessoa"),
@XmlEnumValue("Previdência Social")
VCGE1_PREVIDENCIA_SOCIAL("Previdência Social"),
@XmlEnumValue("Profissionais da educação")
VCGE1_PROFISSIONAIS_DA_EDUCACAO("Profissionais da educação"),
@XmlEnumValue("Proteção social")
VCGE1_PROTECAO_SOCIAL("Proteção social"),
@XmlEnumValue("Qualidade ambiental")
VCGE1_QUALIDADE_AMBIENTAL("Qualidade ambiental"),
@XmlEnumValue("Relações Internacionais")
VCGE1_RELACOES_INTERNACIONAIS("Relações Internacionais"),
@XmlEnumValue("Saúde")
VCGE1_SAUDE("Saúde"),
@XmlEnumValue("Saúde da criança")
VCGE1_SAUDE_DA_CRIANCA("Saúde da criança"),
@XmlEnumValue("Saúde da família")
VCGE1_SAUDE_DA_FAMILIA("Saúde da família"),
@XmlEnumValue("Saúde da mulher")
VCGE1_SAUDE_DA_MULHER("Saúde da mulher"),
@XmlEnumValue("Saúde do homem")
VCGE1_SAUDE_DO_HOMEM("Saúde do homem"),
@XmlEnumValue("Saúde do idoso")
VCGE1_SAUDE_DO_IDOSO("Saúde do idoso"),
@XmlEnumValue("Saúde dos portadores de deficiências")
VCGE1_SAUDE_DOS_PORTADORES_DE_DEFICIENCIAS("Saúde dos portadores de deficiências"),
@XmlEnumValue("Segurança e Ordem Pública")
VCGE1_SEGURANCA_E_ORDEM_PUBLICA("Segurança e Ordem Pública"),
@XmlEnumValue("Trabalho")
VCGE1_TRABALHO("Trabalho"),
@XmlEnumValue("Transportes")
VCGE1_TRANSPORTES("Transportes"),
@XmlEnumValue("Turismo")
VCGE1_TURISMO("Turismo"),
@XmlEnumValue("Urbanismo")
VCGE1_URBANISMO("Urbanismo");
private final String id;
private final String value;
private final String fontAwesomeIcon;
AreaDeInteresse(String v) {
this(v, "tag");
}
@SneakyThrows
AreaDeInteresse(String v, String icon) {
id = new Slugify().slugify(v);
value = v;
fontAwesomeIcon = icon;
}
public static AreaDeInteresse findById(String v) {
return Stream.of(values())
.filter(c -> c.getId().equals(v))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException(v));
}
public String getValue() {
return value;
}
public String getId() {
return id;
}
public String getFontAwesomeIcon() {
return fontAwesomeIcon;
}
@Component
public static class Formatter implements org.springframework.format.Formatter<AreaDeInteresse> {
@Override
public AreaDeInteresse parse(String id, Locale locale) throws ParseException {
try {
return AreaDeInteresse.findById(id);
} catch (IllegalArgumentException e) {
throw new ConteudoNaoEncontrado(id);
}
}
@Override
public String print(AreaDeInteresse areaDeInteresse, Locale locale) {
return areaDeInteresse.getId();
}
}
}