/*** 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.controller; import br.com.hslife.encontreaquipecas.entity.EntityPersistence; import br.com.hslife.encontreaquipecas.exception.BusinessException; import br.com.hslife.encontreaquipecas.service.ICRUDService; @SuppressWarnings({"rawtypes","unchecked"}) public abstract class AbstractCRUDController<E extends EntityPersistence> extends AbstractController<E>{ /** * */ private static final long serialVersionUID = 8568004710331653761L; protected String goToListPage; protected String goToFormPage; protected String goToViewPage; public AbstractCRUDController(E entity) { super(entity); goToListPage = "/pages/" + entity.getClass().getSimpleName() + "/list" + entity.getClass().getSimpleName(); goToFormPage = "/pages/" + entity.getClass().getSimpleName() + "/form" + entity.getClass().getSimpleName(); goToViewPage = "/pages/" + entity.getClass().getSimpleName() + "/view" + entity.getClass().getSimpleName(); } protected abstract ICRUDService getService(); protected void validate(String action) throws BusinessException { entity.validate(); getService().validar(entity); } @Override public String startUp() { return list(); } public String list() { operation = "list"; actionTitle = ""; return goToListPage; } public String create() { operation = "create"; actionTitle = " - Novo"; return goToFormPage; } public String save() { try { if (entity.getId() == null) { validate(operation); getService().cadastrar(entity); infoMessage("Registro cadastrado com sucesso!"); } else { validate(operation); getService().alterar(entity); infoMessage("Registro alterado com sucesso!"); } initializeEntity(); return list(); } catch (BusinessException be) { errorMessage(be.getMessage()); } return ""; } public String view() { try { entity = (E) getService().buscarPorID(idEntity); operation = "delete"; actionTitle = " - Excluir"; return goToViewPage; } catch (BusinessException be) { errorMessage(be.getMessage()); } return ""; } public String edit() { try { entity = (E) getService().buscarPorID(idEntity); operation = "edit"; actionTitle = " - Editar"; return goToFormPage; } catch (BusinessException be) { errorMessage(be.getMessage()); } return ""; } public String delete() { try { validate(operation); getService().excluir(entity); infoMessage("Registro exclu�do com sucesso!"); initializeEntity(); return list(); } catch (BusinessException be) { errorMessage(be.getMessage()); } return ""; } public String find() { return ""; } public String cancel() { initializeEntity(); return list(); } }