
com.ajaxjs.config.impl.GetConfigJson Maven / Gradle / Ivy
package com.ajaxjs.config.impl;
import com.ajaxjs.config.ConfigService;
import com.ajaxjs.config.GetConfig;
import com.ajaxjs.util.logger.LogHelper;
/**
* 以 JSON 为存储格式的配置系统,在 JVM 中以 Map/List 结构保存 该类是单例。
*
* @author frank
*
*/
public class GetConfigJson implements GetConfig {
private static final LogHelper LOGGER = LogHelper.getLog(GetConfigJson.class);
/**
*
*/
private ConfigService cfgService;
/**
* 内部的获取方法
*
* @param 配置类型
* @param key 配置键值
* @param isNullValue 当配置为 null 时返回的值,相当于“默认值”
* @param vType 配置类型的引用
* @return 配置内容
*/
@SuppressWarnings("unchecked")
private T get(String key, T isNullValue, Class vType) {
if(!cfgService.isLoaded()) {
LOGGER.warning("配置系统未准备好");
return isNullValue;
}
if (cfgService.getFlatConfig() == null)
return isNullValue;
Object v = cfgService.getFlatConfig().get(key);
if (v == null) {
LOGGER.warning("没发现[{0}]配置", key);
return isNullValue;
}
return (T) v;
}
@Override
public String get(String key) {
return get(key, null, String.class);
}
@Override
public boolean getBol(String key) {
return get(key, false, boolean.class);
}
@Override
public int getInt(String key) {
return get(key, 0, int.class);
}
@Override
public long getLong(String key) {
return get(key, 0L, long.class);
}
public ConfigService getCfgService() {
return cfgService;
}
public void setCfgService(ConfigService cfgService) {
this.cfgService = cfgService;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy