importcom.google.common.base.MoreObjects;import org.dom4j.*;importorg.dom4j.io.OutputFormat;importorg.dom4j.io.SAXReader;importorg.dom4j.io.XMLWriter;import java.io.*;importjava.util.List;/*** Created by wfcfan on 2016/11/29.*/
public class UserConfig implementsSerializable {static private String CONFIG_XML_PATH = "D:\\data\\config.xml";static private synchronizedDocument getConfigDocument() {
SAXReader reader= newSAXReader();
Document document= null;try{if (CONFIG_XML_PATH.startsWith("/")) {
document= reader.read(newFile(CONFIG_XML_PATH));
}else{
document=reader.read(CONFIG_XML_PATH);
}
}catch(DocumentException e) {
e.printStackTrace();
}returndocument;
}static public synchronized UserConfig getUserConfig() throwsDocumentException {
Element root=getConfigDocument().getRootElement();
List eles =root.elements();
UserConfig config= newUserConfig();for(Element ele : eles) {
String idAttr= ele.attribute("id").getValue();if (idAttr.equals("sysId")) {
config.setSysId(Integer.parseInt(ele.getTextTrim()));
}else if (idAttr.equals("sysName")) {
config.setSysName(ele.getTextTrim());
}
}returnconfig;
}static public synchronized voidsetUserConfig(UserConfig config) {
Document doc=getConfigDocument();
Element root=doc.getRootElement();
List eles =root.elements();for(Element ele : eles) {
String idAttr= ele.attribute("id").getValue();if (idAttr.equals("sysId")) {
ele.setText(String.valueOf(config.getSysId()));
}else if (idAttr.equals("sysName")) {
ele.setText(config.getSysName());
}
}
OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter writer= null;try{
writer= new XMLWriter(newFileOutputStream(CONFIG_XML_PATH), format);
writer.write(doc);
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}finally{try{
writer.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}publicUserConfig() {
}public UserConfig(intid, String sysName) {this.sysId =id;this.sysName =sysName;
}private intsysId;privateString sysName;public intgetSysId() {returnsysId;
}public void setSysId(intsysId) {this.sysId =sysId;
}publicString getSysName() {returnsysName;
}public voidsetSysName(String sysName) {this.sysName =sysName;
}
@OverridepublicString toString() {return MoreObjects.toStringHelper(this)
.add("sysId", sysId)
.add("sysName", sysName)
.toString();
}
}