package br.com.citframework.util; import java.io.InputStream; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.lang.StringUtils; /** * Classe que encapsula a recupera��o de valores do {@link Properties} {@code Constantes.properties} */ public final class Constantes { private static final Logger LOGGER = Logger.getLogger(Constantes.class.getName()); private static final Properties props = new Properties(); private static final String CONTANTES_FILE_NAME = "Constantes.properties"; public static String SERVER_ADDRESS = ""; static { final ClassLoader load = Constantes.class.getClassLoader(); try (InputStream is = load.getResourceAsStream(CONTANTES_FILE_NAME)) { if (is == null) { throw new RuntimeException("Arquivo de recursos nao encontrado: " + CONTANTES_FILE_NAME); } props.load(is); } catch (final Exception e) { LOGGER.log(Level.WARNING, e.getMessage(), e); } } /** * Recupera, diretamente do arquivo de propriedades, valor associado � chave passada como argumento * * @param key * chave a ser pesquisada no arquivo de propriedades * @return valor associado � key, caso encontrado, {@code null}, caso contr�rio */ public static String getValue(final String key) { String result = null; if (key.equalsIgnoreCase("SERVER_ADDRESS") && StringUtils.isNotBlank(SERVER_ADDRESS)) { result = SERVER_ADDRESS; } result = getValueFromProperties(key); return result; } /** * Recupera, diretamente do arquivo de propriedades, valor associado � chave passada como argumento * * @param key * chave a ser pesquisada no arquivo de propriedades * @param defaultValue * valor padr�o de uma chave, caso a chave n�o seja encontrada, seja nula ou vazia * @return valor associado � key, caso encontrado, {@code null}, caso contr�rio * @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a> */ public static String getValue(final String key, final String defaultValue) { final String keyValue = getValue(key); return StringUtils.isBlank(keyValue) ? defaultValue : keyValue; } /** * Recupera, diretamente do arquivo de propriedades, valor associado � chave passada como argumento * * @param key * chave a ser pesquisada no arquivo de propriedades * @return valor associado � key, caso encontrado, {@code null}, caso contr�rio */ public static String getValueFromProperties(final String key) { if (props == null) { return null; } return props.getProperty(key); } /** * Recupera, diretamente do arquivo de propriedades, valor associado � chave passada como argumento * * @param key * chave a ser pesquisada no arquivo de propriedades * @param defaultValue * valor padr�o de uma chave, caso a chave n�o seja encontrada, seja nula ou vazia * @return valor associado � key, caso encontrado, {@code null}, caso contr�rio * @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a> */ public static String getValueFromProperties(final String key, final String defaultValue) { final String keyValue = getValueFromProperties(key); return StringUtils.isBlank(keyValue) ? defaultValue : keyValue; } }