Java tutorial
/*** Copyright (c) 2012 - 2020 Hrcules S. S. Jos Este arquivo parte do programa Oramento Domstico. Oramento Domstico um software livre; voc pode redistribui-lo e/ou modific-lo dentro dos termos da Licena Pblica Geral Menor GNU como publicada pela Fundao do Software Livre (FSF); na verso 2.1 da Licena. Este programa distribudo na esperana que possa ser til, mas SEM NENHUMA GARANTIA; sem uma garantia implcita de ADEQUAO a qualquer MERCADO ou APLICAO EM PARTICULAR. Veja a Licena Pblica Geral Menor GNU em portugus para maiores detalhes. Voc deve ter recebido uma cpia da Licena Pblica Geral Menor GNU sob o nome de "LICENSE.TXT" junto com este programa, se no, acesse o site do projeto no endereco https://github.com/herculeshssj/orcamento ou escreva para a Fundao do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Para mais informaes sobre o programa Oramento Domstico e seu autor entre em contato pelo e-mail herculeshssj@outlook.com, ou ainda escreva para Hrcules S. S. Jos, Av. Ministro Lafaeyte de Andrade, 1683 - Bl. 3 Apt 404, Marco II - Nova Iguau, RJ, Brasil. ***/ package br.com.hslife.orcamento.service; import java.util.HashMap; import java.util.List; import java.util.Map; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import br.com.hslife.orcamento.entity.OpcaoSistema; import br.com.hslife.orcamento.entity.Usuario; import br.com.hslife.orcamento.enumeration.TipoOpcaoSistema; import br.com.hslife.orcamento.exception.ApplicationException; import br.com.hslife.orcamento.facade.IOpcaoSistema; import br.com.hslife.orcamento.repository.OpcaoSistemaRepository; import br.com.hslife.orcamento.util.EntityPersistenceUtil; @Service @Transactional(propagation = Propagation.REQUIRED, rollbackFor = { ApplicationException.class }) public class OpcaoSistemaService implements IOpcaoSistema { @Autowired public SessionFactory sessionFactory; @Autowired private OpcaoSistemaRepository repository; public OpcaoSistemaRepository getRepository() { this.repository.setSessionFactory(this.sessionFactory); return repository; } public void salvarOpcoesGlobal(Map<String, Object> opcoesSistema) { // TODO implementar } // public void excluirOpcoesUsuario(Usuario usuario) { // // Exclui as opes do sistema do usurio // for (OpcaoSistema opcao : opcaoSistemaRepository.findByUsuario(usuario)) { // opcaoSistemaRepository.delete(opcao); // } //} public void salvarOpcoesGlobalAdmin(Map<String, Object> opcoesSistema) { OpcaoSistema opcao = new OpcaoSistema(); for (String chave : opcoesSistema.keySet()) { opcao = getRepository().findOpcaoGlobalAdminByChave(chave); validarValorOpcaoSistema(opcao, opcoesSistema.get(opcao.getChave())); if (opcoesSistema.get(chave) instanceof String) { opcao.setTipoValor("STRING"); opcao.setValor((String) opcoesSistema.get(chave)); } if (opcoesSistema.get(chave) instanceof Boolean) { opcao.setTipoValor("BOOLEAN"); opcao.setValor(Boolean.toString((Boolean) opcoesSistema.get(chave))); } if (opcoesSistema.get(chave) instanceof Integer) { opcao.setTipoValor("INTEGER"); opcao.setValor(Integer.toString((Integer) opcoesSistema.get(chave))); } //opcao.setValor((String)opcoesSistema.get(chave)); -- Mudana decorrente de usar o JSF 2.2.10 e PrimeFaces 5.2 getRepository().update(opcao); } } public void salvarOpcoesUser(Map<String, Object> opcoesSistema, Usuario usuario) { OpcaoSistema opcao; for (String chave : opcoesSistema.keySet()) { opcao = getRepository().findOpcaoUserByChave(chave, usuario); if (opcao != null) { validarValorOpcaoSistema(opcao, opcoesSistema.get(opcao.getChave())); //opcao.setValor((String)opcoesSistema.get(chave)); -- Mudana decorrente de usar o JSF 2.2.10 e PrimeFaces 5.2 if (opcoesSistema.get(chave) instanceof String) { opcao.setTipoValor("STRING"); opcao.setValor((String) opcoesSistema.get(chave)); } if (opcoesSistema.get(chave) instanceof Boolean) { opcao.setTipoValor("BOOLEAN"); opcao.setValor(Boolean.toString((Boolean) opcoesSistema.get(chave))); } if (opcoesSistema.get(chave) instanceof Integer) { opcao.setTipoValor("INTEGER"); opcao.setValor(Integer.toString((Integer) opcoesSistema.get(chave))); } getRepository().update(opcao); } else { opcao = new OpcaoSistema(); opcao.setCasoDeUso(""); opcao.setChave(chave); opcao.setTipoOpcaoSistema(TipoOpcaoSistema.USER); opcao.setUsuario(usuario); if (opcoesSistema.get(chave) instanceof String) { opcao.setTipoValor("STRING"); opcao.setValor((String) opcoesSistema.get(chave)); } if (opcoesSistema.get(chave) instanceof Boolean) { opcao.setTipoValor("BOOLEAN"); opcao.setValor(Boolean.toString((Boolean) opcoesSistema.get(chave))); } if (opcoesSistema.get(chave) instanceof Integer) { opcao.setTipoValor("INTEGER"); opcao.setValor(Integer.toString((Integer) opcoesSistema.get(chave))); } getRepository().save(opcao); } } } private void validarValorOpcaoSistema(OpcaoSistema opcao, Object valor) { if (opcao.isRequired()) { EntityPersistenceUtil.validaCampoNulo(opcao.getChave(), valor); } } public List<OpcaoSistema> buscarOpcoesGlobalAdmin() { return getRepository().findOpcoesGlobalAdmin(); } public Map<String, Object> buscarMapOpcoesGlobalAdmin() { List<OpcaoSistema> opcoesSistema = getRepository().findOpcoesGlobalAdmin(); Map<String, Object> parametros = new HashMap<String, Object>(); for (OpcaoSistema opcao : opcoesSistema) { if (opcao.getTipoValor().equals("STRING")) { parametros.put(opcao.getChave(), opcao.getValor()); } if (opcao.getTipoValor().equals("BOOLEAN")) { parametros.put(opcao.getChave(), Boolean.valueOf(opcao.getValor())); } if (opcao.getTipoValor().equals("INTEGER")) { parametros.put(opcao.getChave(), Integer.valueOf(opcao.getValor())); } } return parametros; } public Map<String, Object> buscarMapOpcoesUser(Usuario usuario) { List<OpcaoSistema> opcoesSistema = getRepository().findOpcoesUser(usuario); Map<String, Object> parametros = new HashMap<String, Object>(); for (OpcaoSistema opcao : opcoesSistema) { if (opcao.getTipoValor().equals("STRING")) { parametros.put(opcao.getChave(), opcao.getValor()); } if (opcao.getTipoValor().equals("BOOLEAN")) { parametros.put(opcao.getChave(), Boolean.valueOf(opcao.getValor())); } if (opcao.getTipoValor().equals("INTEGER")) { parametros.put(opcao.getChave(), Integer.valueOf(opcao.getValor())); } } return parametros; } public Map<String, Object> buscarOpcoesGlobalAdminPorCDU(String cdu) { List<OpcaoSistema> opcoesSistema = getRepository().findOpcoesGlobalAdminByCDU(cdu); Map<String, Object> parametros = new HashMap<String, Object>(); for (OpcaoSistema opcao : opcoesSistema) { if (opcao.getTipoValor().equals("STRING")) { parametros.put(opcao.getChave(), opcao.getValor()); } if (opcao.getTipoValor().equals("BOOLEAN")) { parametros.put(opcao.getChave(), Boolean.valueOf(opcao.getValor())); } if (opcao.getTipoValor().equals("INTEGER")) { parametros.put(opcao.getChave(), Integer.valueOf(opcao.getValor())); } } return parametros; } @Override public OpcaoSistema buscarOpcaoUsuarioPorChave(String chave, Usuario usuario) { return getRepository().findOpcaoUserByChave(chave, usuario); } @Override public List<OpcaoSistema> buscarOpcoesUserPorCasoUso(String casoDeUso, Usuario usuario) { return getRepository().findOpcoesUserByCasoUso(casoDeUso, usuario); } }