view src/de/mpiwg/anteater/xml/impl/ResultXMLManager.java @ 2:1c2b4f5e2c05

linnaeus for finding species
author jdamerow
date Mon, 22 Oct 2012 13:46:54 -0700
parents 036535fcd179
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);
	}
}