📄 xmlwrite.java
字号:
package demo.pluginA.treeview.xmlutils;
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
import demo.pluginA.treeview.data.*;
public class XMLWrite {
//attributes
/** XML tags */
private final static String id = "id";
private final static String description = "description";
private final static String status = "status";
private final static String name = "name";
private final static String timestamp = "timestamp";
private final static String order = "order";
private final static String option = "option";
private final static String root_activity = "activities";
private final static String node_activity = "activity";
private final static String root_task = "tasks";
private final static String node_task = "task";
private final static String root_step = "steps";
private final static String node_step = "step";
private final static String root_query = "queries";
private final static String node_query = "query";
private String szFilename;
private List<ITreeEntry> list;
private Document doc;
private boolean isValid = true;
//constructors
public XMLWrite(String szFilename, List<ITreeEntry> list) {
super();
this.szFilename = szFilename;
this.list = list;
doc = DocumentFactory.getInstance().createDocument();
}
//methods
private void WriteEntry(Element root, List<ITreeEntry> parent){
List<ITreeEntry> children;
Element nameElem, descElem, elem;
Element rootActivity = null, rootTask = null, rootStep = null, rootQuery = null;
short tag_query = 0;
for(int i=0; i<parent.size(); i++){
children = parent.get(i).getChildren();
if(parent.get(i) instanceof ProcessEntity){
ProcessEntity pe = (ProcessEntity)parent.get(i);
root.addAttribute(id, pe.getIdProcess());
nameElem = root.addElement(name);
if(parent.get(i).getName() != null)
nameElem.setText(parent.get(i).getName());
descElem = root.addElement(description);
if(parent.get(i).getDiscription() != null)
descElem.setText(parent.get(i).getDiscription());
if(children == null || children.size() == 0){
continue;
}
else
WriteEntry(root, children);
}
else if(parent.get(i) instanceof ActivityEntity){
if(i == 0)
rootActivity = root.addElement(root_activity);
elem = rootActivity.addElement(node_activity);
nameElem = elem.addElement(name);
if(parent.get(i).getName() != null)
nameElem.setText(parent.get(i).getName());
descElem = elem.addElement(description);
if(parent.get(i).getDiscription() != null)
descElem.setText(parent.get(i).getDiscription());
if(children == null || children.size() == 0){
elem.addElement(root_task);
elem.addElement(root_step);
elem.addElement(root_query);
}
else
WriteEntry(elem, children);
}
else if(parent.get(i) instanceof TaskEntity){
if(i == 0)
rootTask = root.addElement(root_task);
elem = rootTask.addElement(node_task);
nameElem = elem.addElement(name);
if(parent.get(i).getName() != null)
nameElem.setText(parent.get(i).getName());
descElem = elem.addElement(description);
if(parent.get(i).getDiscription() != null)
descElem.setText(parent.get(i).getDiscription());
if(children == null || children.size() == 0){
elem.addElement(root_step);
elem.addElement(root_query);
}
else
WriteEntry(elem, children);
}
else if(parent.get(i) instanceof StepEntity){
if(i == 0)
rootStep = root.addElement(root_step);
elem = rootStep.addElement(node_step);
nameElem = elem.addElement(name);
if(parent.get(i).getName() != null)
nameElem.setText(parent.get(i).getName());
descElem = elem.addElement(description);
if(parent.get(i).getDiscription() != null)
descElem.setText(parent.get(i).getDiscription());
if(children == null || children.size() == 0)
elem.addElement(root_query);
else
WriteEntry(elem, children);
}
else if(parent.get(i) instanceof QueryEntity){
if(tag_query == 0)
rootQuery = root.addElement(root_query);
tag_query++;
elem = rootQuery.addElement(node_query);
if(parent.get(i).getName().compareTo("string") == 0)
System.out.println("query");
if(parent.get(i).getName() != null)
elem.addAttribute(id, parent.get(i).getName());
QueryEntity qe = (QueryEntity)parent.get(i);
if(qe.getOption() == true){
descElem = elem.addElement(option);
descElem.setText("t");
}
else{
descElem = elem.addElement(option);
descElem.setText("f");
}
}
else
continue;
}
}
public void ListToDoc() throws Exception{
if(list == null || doc == null){
this.isValid = false;
}
//WriteEntry();
Element root = doc.addElement("process");
this.WriteEntry(root, list);
SaveToFile();
}
private void SaveToFile(){
if(doc == null){
this.isValid = false;
return;
}
try{
FileOutputStream fos = new FileOutputStream(szFilename);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(fos, format);
writer.write(doc);
writer.flush();
}catch(Exception e){
this.isValid = false;
System.out.println(e.getMessage());
}
}
public boolean isValid() {
return isValid;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -