[RESOLVIDO]Serializando ENUM

3 respostas
PaduaAlves

Boa noite senhores.

Tenho o seguinte ENUM

import java.util.ArrayList;
import java.util.List;

public enum TipoProjeto {
	SERVICOS_CIENTIFICO_E_TECNOLOGICO_EM_TI(0,"Serviços Científicos e tecnológico em TI"), 
	HARDWARE(1, "Hardware"), 
	PROJETOS_PROGRAMAS_DE_FORMACAO_E_CAPACITACAO_EM_TI(2, "Projetos e programas de formação e capacitação em TI"), 
	SOFTWARE(3, "Software"), 
	IMPLANTACAO_AMPLIACAO_OU_MODERNIZACAO_DE_LABORATORIO_DE_PED_EM_TI(4,"Implantação e ampliação ou modernização de lanoratório em PED e em TI"),
	PESQUISA(5, "Pesquisa"), SISTEMA(6, "Sistema"), OUTRO(7, "Outro");

	private int id;
	private String nome;

	private TipoProjeto(int id, String nome) {
		this.id = id;
		this.nome = nome;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public static List<TipoProjetoCombo> findAll() {
		List<TipoProjetoCombo> tipoProjetoCombo = new ArrayList<TipoProjetoCombo>();
		for (TipoProjeto tipoProjeto : values()) {
			TipoProjetoCombo tP = new TipoProjetoCombo(tipoProjeto.getId(),	tipoProjeto.getNome());
			tipoProjetoCombo.add(tP);
		}
		return tipoProjetoCombo;
	}
}
Esse enm é um atributo de uma entidaed minha que está mapeada assim
@Enumerated(EnumType.ORDINAL)
	@Column(name = "id_tipo_projeto")
	private TipoProjeto tipoProjeto;
Até ai tudo bem. Esse enum é usado par apopular um cmponente combobox do extjs. Quando salvo, o ordinal do enum é persistido numa boa. O problema é que em um dado momento, preciso editar a minha entidade, cosequentemente, tenho que popular o formulário com os dados vndos do banco. Quando eu faço um find para preencher minha entidade e setar o valor co combobox, encontro um problema, pois meu campo enum vem serializado assim: {"tipoProjeto": "HARDWARE"}. Gostaria de saber como eu faço para serializar a propriedade " nome" do meu Enum para que eu possa setar o valor correto no combo.

3 Respostas

ViniGodoy

O que vc está usando para fazer a serialização?

PaduaAlves

Estou usando a classe Results do vraptor.

results.use(Results.json()).from(minhaEntidade).serialize();

Isso me retona o JSON da entidade. Como eu citei anteriormente, o problema é que eu queria pegar o valor representativo do enum para popular o formulário de edição, porém o atributo é retornado como eu citei no primeiro post.

PaduaAlves

Achei algo que soluciona minha dúvida

http://www.guj.com.br/java/219161-vraptor-3-serialize-enum-json

Resolvido.

Criado 31 de maio de 2011
Ultima resposta 31 de mai. de 2011
Respostas 3
Participantes 2