view src/de/mpiwg/anteater/xml/impl/ResultXMLManager.java @ 0:036535fcd179

anteater
author jdamerow
date Fri, 14 Sep 2012 10:30:43 +0200
parents
children
line wrap: on
line source

package de.mpiwg.anteater.xml.impl;

import java.io.File;
import java.io.InputStream;
import java.util.List;

import org.jdom2.Element;

import de.mpiwg.anteater.xml.IResultFileManager;
import de.mpiwg.anteater.xml.IXMLParser;

public class ResultXMLManager extends JDOMParser implements IResultFileManager {

	private String filepath;
	
	public ResultXMLManager(String filepath) {
		super();
		this.filepath = filepath;
		
		File resultFile = new File(filepath);
		if (resultFile.exists())
			init(filepath);
		else {
			InputStream stream = getClass().getResourceAsStream("templates/resultFile.xml");
			init(stream);
		}
	}
	
	@Override
	public void addSummary(String result) {
		addElementToDoc(result, "/results/summaries");
	}
	
	@Override
	public void addSupplInf(String result) {
		//System.out.println(result);
		addElementToDoc(result, "/results/supplementary_information");
	}
	
	private void addElementToDoc(String result, String xpath) {
		IXMLParser parser = new JDOMParser(result, false);
		Element root = parser.getRoot();
		
		List<Element> nodes = executeXPath(xpath, null);
		
		if (nodes != null && nodes.size() > 0) {
			nodes.get(0).addContent(root.clone());
		}
		
		save(filepath, false);
	}
}