package com.aggrepoint.winlet.site.dao.fs;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.Hashtable;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.aggrepoint.winlet.site.domain.Base;
/**
* 工具类
*
* @author Jiangming Yang (yangjm@gmail.com)
*/
public class Utils {
static final Log logger = LogFactory.getLog(Utils.class);
/**
* 负责读取cfg.cfg中的配置信息
*
* @param dir
* @return
*/
public static Hashtable<String, String> loadCfg(File dir) {
Hashtable<String, String> cfgs = new Hashtable<String, String>();
if (!dir.isDirectory())
return cfgs;
for (File f : dir.listFiles()) {
if (f.isDirectory())
continue;
if (f.getName().equals("cfg.cfg")) {
try {
LineNumberReader lnr = new LineNumberReader(
new InputStreamReader(new FileInputStream(f),
"UTF-8"));
String line = lnr.readLine();
while (line != null) {
line = line.trim();
if (!line.equals("") && !line.startsWith("#")) {
int idx = line.indexOf(":");
if (idx > 0)
cfgs.put(line.substring(0, idx).trim(), line
.substring(idx + 1).trim());
else
cfgs.put(line, "");
}
line = lnr.readLine();
}
lnr.close();
} catch (Exception e) {
logger.error(
"Error reading site configuration file: "
+ f.getAbsolutePath(), e);
}
break;
}
}
return cfgs;
}
public static void getNameAndOrder(Base base, File file) {
try {
String name = file.getName();
base.setDir(name);
int idx = name.indexOf("#");
if (idx > 0) {
base.setOrder(Integer.parseInt(name.substring(0, idx)));
base.setName(name.substring(idx + 1));
} else
base.setName(name);
} catch (Throwable t) {
logger.error("Error extracting name and order from file name: "
+ file.getAbsolutePath(), t);
}
}
}