package br.com.centralit.citcorpore.util; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; import br.com.centralit.citcorpore.bean.ParametroCorporeDTO; import br.com.centralit.citcorpore.negocio.ParametroCorporeService; import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema; import br.com.citframework.integracao.TransactionControler; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Assert; public class ParametroUtil { private static final Map<Integer, String> parametroCitSmart = new HashMap<Integer, String>(); /** * Atualiza HashMap st�tico que armazena os par�metros do CITSMart. * * @param parametroSistema * - Par�metro do sistema. * @param valor * - Valor do par�metro. * @author valdoilo.damasceno */ public static void atualizarHashMapParametroCitSmart(final Integer id, final String valor) { if (id != null) { parametroCitSmart.put(id, valor); } } /** * Realiza consulta do valor do Par�metro no BD. * * @param parametro * @param valorDefault * @return valorParametro * @throws Exception * @author valdoilo.damasceno */ public static String getValor(final ParametroSistema parametro) throws Exception { final ParametroCorporeDTO parametroDto = getService().getParamentroAtivo(parametro.id()); if (StringUtils.isBlank(parametroDto.getValor())) { return null; } return parametroDto.getValor().trim(); } public static String getValor(final ParametroSistema parametro, final TransactionControler tc, final String valorDefault) throws Exception { return getValorParametroCitSmartHashMap(parametro, valorDefault); } /** * Retorna valor do Par�metro que est� armazenado no HashMap st�tico. Caso n�o haja valor armazenado retorna valor default informado. * * @param parametro * - ParametroSistema informado. * @param valorDefault * - Valor padr�o que dever� ser assumido caso n�o haja nenhuma armazenado. * @return ValorParametroCitSmart * @author valdoilo.damasceno */ public static String getValorParametroCitSmartHashMap(final ParametroSistema parametro, final String valorDefault) { final String valorParametroCitSmart = parametroCitSmart.get(parametro.id()); if (StringUtils.isNotBlank(valorParametroCitSmart)) { return valorParametroCitSmart; } return valorDefault; } /** * Retorna valor num�rico do par�metro que est� armazenado no Map de cache. Caso n�o haja valor armazenado retorna valor default informado. * * @param param * par�metro a ser recuperado * @param defaultValue * valor padr�o, caso n�o exista valor para o par�metro * @return * @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a> * @since 28/10/2014 */ public static Integer getValorParametro(final ParametroSistema param, final String defaultValue) { Assert.notNull(param, "Parameter must not be null"); Assert.notNullAndNotEmpty(defaultValue, "Default value must not be null or empty"); final boolean isTipoNumerico = param.tipoCampo().equals(Enumerados.NUMERO); Assert.isTrue(isTipoNumerico, "Parameter type must be 'NUMERO'"); final String result = StringUtils.trim(ParametroUtil.getValorParametroCitSmartHashMap(param, defaultValue)); return Integer.parseInt(result); } private static ParametroCorporeService service; public static ParametroCorporeService getService() throws Exception { if (service == null) { service = (ParametroCorporeService) ServiceLocator.getInstance().getService(ParametroCorporeService.class, null); } return service; } }