package eu.dnetlib.recolecta.extended.ui;

import eu.dnetlib.miscutils.functional.xml.ApplyXslt;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.springframework.core.io.ClassPathResource;

import java.io.StringReader;

/**
 * Created by miriam on 07/05/2018.
 */
public class Result {

    private String id;
    private String metadata;

    public String getId() {
        return id;
    }

    public Result setId(String id) {
        this.id = id;
        return this;
    }


    public String getMetadata() {
        return metadata;
    }

    public Result setMetadata(String metadata) {
        this.metadata = metadata;
        return this;
    }

    public static Result newInstance(String s, ApplyXslt xslt) {

        try {
            SAXReader reader = new SAXReader();
            Document doc = reader.read(new StringReader(s));
            Result r = new Result();
            r.setId(doc.valueOf("//*[local-name() = 'objIdentifier']"));
            r.setMetadata(xslt.apply(doc.selectSingleNode("//*[local-name() = 'metadata']").asXML()));
            return r;
        } catch (DocumentException e) {
            //TODO: inserire log
            return null;
        }



    }

    public static Result newInstance(Node n,ApplyXslt xslt) {
            Result r = new Result();
            r.setId(n.selectSingleNode("./ID").getText());
            r.setMetadata(xslt.apply(n.asXML()));
            return r;

    }
}
