package message.config;
import message.config.properties.Configuration;
import message.config.properties.ConfigurationLoader;
import message.config.properties.PropertiesConfiguration;
import message.config.exception.ConfigException;
import org.springframework.core.io.Resource;
import org.springframework.util.Assert;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.*;
/**
* 系统配置文件.
*
* @author sunhao(sunhao.java@gmail.com)
* @version V1.0, 14-8-17 下午10:29
*/
public class SystemConfig {
private static Configuration configuration;
private static Properties properties;
static {
init();
}
private static void init() {
properties = ConfigurationLoader.getConfigProperties();
configuration = new PropertiesConfiguration(properties);
}
public static Configuration subset(String prefix) {
return configuration.subset(prefix);
}
public static boolean containsKey(String key) {
return configuration.containsKey(key);
}
public static Object getProperty(String key) {
return configuration.getProperty(key);
}
public static Set<String> getKeys(String prefix) {
return configuration.getKeys(prefix);
}
public static Set<String> getKeys() {
return configuration.getKeys();
}
public static Properties getProperties(String key) {
return configuration.getProperties(key);
}
public static boolean getBoolean(String key) {
return configuration.getBoolean(key);
}
public static boolean getBoolean(String key, boolean defaultValue) {
return configuration.getBoolean(key, defaultValue);
}
public static Boolean getBoolean(String key, Boolean defaultValue) {
return configuration.getBoolean(key, defaultValue);
}
public static byte getByte(String key) {
return configuration.getByte(key);
}
public static byte getByte(String key, byte defaultValue) {
return configuration.getByte(key, defaultValue);
}
public static Byte getByte(String key, Byte defaultValue) {
return configuration.getByte(key, defaultValue);
}
public static double getDouble(String key) {
return configuration.getDouble(key);
}
public static double getDouble(String key, double defaultValue) {
return configuration.getDouble(key, defaultValue);
}
public static Double getDouble(String key, Double defaultValue) {
return configuration.getDouble(key, defaultValue);
}
public static float getFloat(String key) {
return configuration.getFloat(key);
}
public static float getFloat(String key, float defaultValue) {
return configuration.getFloat(key, defaultValue);
}
public static Float getFloat(String key, Float defaultValue) {
return configuration.getFloat(key, defaultValue);
}
public static int getInt(String key) {
return configuration.getInt(key);
}
public static int getInt(String key, int defaultValue) {
return configuration.getInt(key, defaultValue);
}
public static Integer getInteger(String key, Integer defaultValue) {
return configuration.getInteger(key, defaultValue);
}
public static long getLong(String key) {
return configuration.getLong(key);
}
public static long getLong(String key, long defaultValue) {
return configuration.getLong(key, defaultValue);
}
public static Long getLong(String key, Long defaultValue) {
return configuration.getLong(key, defaultValue);
}
public static short getShort(String key) {
return configuration.getShort(key);
}
public static short getShort(String key, short defaultValue) {
return configuration.getShort(key, defaultValue);
}
public static Short getShort(String key, Short defaultValue) {
return configuration.getShort(key, defaultValue);
}
public static BigDecimal getBigDecimal(String key) {
return configuration.getBigDecimal(key);
}
public static BigDecimal getBigDecimal(String key, BigDecimal defaultValue) {
return configuration.getBigDecimal(key, defaultValue);
}
public static BigInteger getBigInteger(String key) {
return configuration.getBigInteger(key);
}
public static BigInteger getBigInteger(String key, BigInteger defaultValue) {
return configuration.getBigInteger(key, defaultValue);
}
public static String getString(String key) {
return configuration.getString(key);
}
public static String getString(String key, String defaultValue) {
return configuration.getString(key, defaultValue);
}
public static String[] getStringArray(String key) {
return configuration.getStringArray(key);
}
public static List<Object> getList(String key) {
return configuration.getList(key);
}
public static List<Object> getList(String key, List<?> defaultValue) {
return configuration.getList(key, defaultValue);
}
public static Resource getConfigFile(String fileName) {
return ConfigurationLoader.getConfigFile(fileName);
}
public static Map<String, String> getAllConfigs() {
return new HashMap<String, String>((Map) properties);
}
public static Configuration getFileConfiguration(String fileName) {
Assert.hasText(fileName, "文件名不能为空!");
Resource resource = getConfigFile(fileName);
try {
return configuration = new PropertiesConfiguration(ConfigurationLoader.getConfigFileProperties(resource));
} catch (IOException e) {
throw new ConfigException(10008, "加载配置文件发生IO异常");
}
}
}