All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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