⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlwrite.java

📁 TTreeview 的 Java实例 Eclipes环境下
💻 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 + -