uoa-validator-engine2/src/main/java/eu/dnetlib/validator2/engine/CrisClass.java

86 lines
2.8 KiB
Java

package eu.dnetlib.validator2.engine;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
public class CrisClass {
private String classId;
private String ClassSchemeId;
private String startDate;
private String endDate;
// Maybe will change to constructor calling the private default constructor. Will see
public static CrisClass getInstance(Node node) throws XPathExpressionException, ParserConfigurationException {
CrisClass instance = new CrisClass();
Document newXMLDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element root = newXMLDocument.createElement("root");
newXMLDocument.appendChild(root);
Node copyNode = newXMLDocument.importNode(node, true);
root.appendChild(copyNode);
printXMLDocument(newXMLDocument);
XPathFactory factory = XPathFactory.newInstance();
XPath xPath = factory.newXPath();
instance.setClassId((String) xPath.evaluate("//cfClassId/text()", newXMLDocument, XPathConstants.STRING));
instance.setClassSchemeId((String) xPath.evaluate("//cfClassSchemeId/text()", newXMLDocument, XPathConstants.STRING));
instance.setStartDate((String) xPath.evaluate("//cfStartDate/text()", newXMLDocument, XPathConstants.STRING));
instance.setEndDate((String) xPath.evaluate("//cfEndDate/text()", newXMLDocument, XPathConstants.STRING));
return instance;
}
// Not sure of the effect of this method. Implemented as in the original source.
private static void printXMLDocument(Document document) {
DOMImplementationLS domImplementationLS = (DOMImplementationLS) document.getImplementation();
LSSerializer lsSerializer = domImplementationLS.createLSSerializer();
lsSerializer.writeToString(document);
}
private CrisClass() {}
public String getClassId() {
return classId;
}
public void setClassId(String classId) {
this.classId = classId;
}
public String getClassSchemeId() {
return ClassSchemeId;
}
public void setClassSchemeId(String classSchemeId) {
ClassSchemeId = classSchemeId;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
}