package com.baidu.disconf.client.core.filetype;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.baidu.disconf.client.common.constants.SupportFileTypeEnum;
import com.baidu.disconf.client.core.filetype.impl.DisconfAnyFileProcessorImpl;
import com.baidu.disconf.client.core.filetype.impl.DisconfPropertiesProcessorImpl;
import com.baidu.disconf.client.core.filetype.impl.DisconfXmlProcessorImpl;
/**
* @author knightliao
*/
public class FileTypeProcessorUtils {
protected static final Logger LOGGER = LoggerFactory.getLogger(FileTypeProcessorUtils.class);
/**
* 输入文件名,返回其相应的k-v数据
*/
public static Map<String, Object> getKvMap(SupportFileTypeEnum supportFileTypeEnum, String fileName)
throws Exception {
DisconfFileTypeProcessor disconfFileTypeProcessor;
//
// 获取数据
//
Map<String, Object> dataMap;
if (supportFileTypeEnum.equals(SupportFileTypeEnum.PROPERTIES)) {
disconfFileTypeProcessor = new DisconfPropertiesProcessorImpl();
} else if (supportFileTypeEnum.equals(SupportFileTypeEnum.XML)) {
disconfFileTypeProcessor = new DisconfXmlProcessorImpl();
} else {
disconfFileTypeProcessor = new DisconfAnyFileProcessorImpl();
}
dataMap = disconfFileTypeProcessor.getKvMap(fileName);
if (dataMap == null) {
dataMap = new HashMap<String, Object>();
}
//
// 进行数据过滤
//
for (String key : dataMap.keySet()) {
if (key == null) {
continue;
}
LOGGER.debug(key + "\t" + dataMap.get(key));
}
return dataMap;
}
}