package com.whaugmentum.training.util;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
import java.util.Properties;
import com.whaugmentum.training.entity.Template;
import com.whaugmentum.training.exception.ServiceException;
public class PropertiesUtil {
private final Properties pro = new Properties();
private final String path = this.getClass().getResource("/").getPath();
public void WriteIntoProperties(List<Template> templateList, String reqTypeName)
throws Exception {
loadProperties("/Template.properties");
//Make the templateList become String
StringBuffer sb = new StringBuffer("[");
if (null != templateList && 0 != templateList.size()) {
for (int i = 0; i < templateList.size(); i++) {
//Make the templateList liak[{fieldname : "title", needname : "title", texttype : "text"}, {fieldname : "content", needname : "content" , texttype : "textarea"}, {fieldname : "reson", needname : "reson", texttype : "text" }, {fieldname : "prefertime", needname : "prefertime", texttype : "datetimepicker"}]
sb.append("{");
Template template = templateList.get(i);
sb.append("fieldname : \"" + template.getFieldname() + "\",");
sb.append("needname : \"" + template.getNeedname() + "\",");
sb.append("texttype : \"" + template.getTexttype() + "\"");
if (i != templateList.size() - 1) {
sb.append("},");
} else {
sb.append("}");
}//end if
}//end for
}//end if
sb.append("]");
writeProperties("/Template.properties", reqTypeName, sb.toString());
}
private void loadProperties(String fileName) throws Exception {
FileInputStream fis = null;
try {
fis = new FileInputStream(path + "/" + fileName);
pro.load(fis);
} catch (Exception e) {
throw new Exception("Exception in PropertiesUtil");
} finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void writeProperties(String fileName, String key, String value) throws Exception {
//Crreate a Out io
OutputStreamWriter out = null;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(path + "/" + fileName);
out = new OutputStreamWriter(fos);
//Setter the value into file by the key
pro.setProperty(key.replace(" ", ""), value);
//Writer the out io into pro
pro.store(out, "Change" + key);
} catch (Exception e) {
throw new Exception("Exception in PropertiesUtil");
} finally {
try {
fos.close();
out.close();
} catch (IOException e) {
throw new Exception("Exception in PropertiesUtil");
}
}
}
public String readProperties(String fileName, String key) throws Exception {
try {
loadProperties(fileName);
} catch (Exception e) {
throw new Exception("Exception in PropertiesUtil");
}
String value = (String) pro.get(key.replace(" ", ""));
return value;
}
}