package com.qmth.qrzk.repository.utils;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;

/**
 * 读取属性文件的配置参数
 */
public class ServerConfig {
    //private static Logger logger = Logger.getLogger("product run.trns.core.parse.NodeParser");
    // 属性配置
    private static Properties log = null;
    // 单例模式
    private static ServerConfig config = null;
    // 判断当前系统环境
	private static final boolean WINDOWS = System.getProperty("os.name").startsWith("Windows");
	// 私有构造
	private ServerConfig(){ }
	
	// 单例模式初始化
	public static ServerConfig getInstance(){
		if(config == null){
			config = new ServerConfig();
			init();
		}
		return config;
	}
	
	// 初始化函数
	private static void init(){
		if (log == null){
			String configfile = null;
			if(WINDOWS)
				configfile = "qrzk.conf";
			else
				configfile = "qrzk.conf";
			
			String appPath = FileTool.getAppPath();
			File file = new File(appPath);
			String appPathParent = file.getParent();
			String configPath = appPathParent;
			appPath= appPath + File.separator + configfile;
			file = new File(appPath);	
			FileInputStream fis = null;
			try{
				if (!file.exists()){
					System.out.println("配置文件不存在");
					System.exit(-1);
				}

				fis = new FileInputStream(file);
				log = new Properties();
				log.load(fis);
				//conn_driver=test_1
				log.setProperty("ConfigPath", configPath);
				fis.close();
			}
			catch(Exception e){
				//logger.error("config::init::cann't load log file" + e.getMessage());
				System.exit(-1);
			}
		}
	}
	
	
	public Properties getWorkInfo(){
		return log;
	}
	
	public String getProperty(String key){
		return log.getProperty(key);
	}
	
	/*
	public synchronized void writeLog(String key, String value) throws Exception{
		setProperty(key, value);
		try{
			save();
			
		}
		catch(Exception e){
			throw new Exception(e.getMessage());
		}
	}
	*/
	/*
	private void setProperty(String key, String value){
		log.setProperty(key, value);
	}
	
	private void save() throws Exception{
		FileOutputStream fos = null;
		try{
			fos = new FileOutputStream(file);
			log.store(fos, "");
			fos.close();
		}
		catch(Exception e){
			throw new Exception(e.getMessage());
		}
	}
	*/
	public static void main(String[] args) {
		String value = ServerConfig.getInstance().getWorkInfo().getProperty("URL");
		System.out.println(value);
	}
	
}
