package eu.dnetlib.enabling.datastructures;

import java.io.IOException;
import java.util.Map;

import javax.xml.bind.annotation.XmlRootElement;

import org.dom4j.Document;
import org.dom4j.DocumentException;

import com.google.common.collect.Maps;

import eu.dnetlib.enabling.annotations.DnetResource;
import eu.dnetlib.rmi.objects.is.DnetResourceFormat;
import eu.dnetlib.rmi.objects.is.DnetResourceKind;

@XmlRootElement
@DnetResource(type = "Workflow", kind = DnetResourceKind.CONFIGURATION, format = DnetResourceFormat.XML)
public class Workflow extends AbstractXmlResource {

	public Workflow(final String res) throws IOException, DocumentException {
		super(res);
	}

	@Override
	protected String getName(final Document doc) {
		return doc.valueOf("/WORKFLOW/@name");
	}

	@Override
	protected String getCode(final Document doc) {
		return doc.valueOf("/WORKFLOW/@code");
	}

	@Override
	protected Map<String, String> getProperties(final Document doc) {
		final Map<String, String> map = Maps.newHashMap();
		if ("true".equalsIgnoreCase(doc.valueOf("/WORKFLOW/@repo-hi"))) {
			map.put("type", "repo_hi");
		}
		return map;
	}
}
