86 lines
2.8 KiB
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;
|
|
}
|
|
}
|