/*** Copyright (c) 2013 Hércules S. S. José Este arquivo é parte do programa EncontreAquiPeças. EncontreAquiPeças é um software livre; você pode redistribui-lo e/ou modificá-lo dentro dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do Software Livre (FSF); na versão 2.1 da Licença. Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral Menor GNU em português para maiores detalhes. Você deve ter recebido uma cópia da Licença Pública Geral Menor GNU sob o nome de "LICENSE.TXT" junto com este programa, se não, acesse o site HSlife no endereco www.hslife.com.br ou escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Para mais informações sobre o programa EncontreAquiPeças e seu autor acesse o endereço www.hslife.com.br, pelo e-mail contato@hslife.com.br ou escreva para Hércules S. S. José, Av. Ministro Lafaeyte de Andrade, 1683 - Bl. 3 Apt 404, Marco II - Nova Iguaçu, RJ, Brasil. */ package br.com.hslife.encontreaquipecas.converter; import java.util.Map; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; import br.com.hslife.encontreaquipecas.entity.EntityPersistence; @FacesConverter(value="entityConverter") public class EntityConverter implements Converter { @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { if (value != null) { return this.getAttributesFrom(component).get(value); } return null; } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { if (value != null && !"".equals(value)) { EntityPersistence entity = (EntityPersistence) value; // adiciona item como atributo do componente this.addAttribute(component, entity); Long codigo = entity.getId(); if (codigo != null) { return String.valueOf(codigo); } } return (String) value; } protected void addAttribute(UIComponent component, EntityPersistence entity) { String key = entity.getId().toString(); this.getAttributesFrom(component).put(key, entity); } protected Map<String, Object> getAttributesFrom(UIComponent component) { return component.getAttributes(); } }