package i5.las2peer.services.ocd.utils;
import i5.las2peer.services.ocd.graphs.CoverCreationType;
import i5.las2peer.services.ocd.graphs.GraphCreationType;
import i5.las2peer.services.ocd.metrics.OcdMetricType;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* Manages different request-related tasks for the Service Class particularly for the OCD service.
* Mainly in charge of simple IO tasks and of creating entity managers for persistence purposes.
* @author Sebastian
*
*/
public class OcdRequestHandler extends RequestHandler {
/**
* Creates an XML document containing all statistical measure names.
* @return The document.
* @throws ParserConfigurationException
*/
public String writeStatisticalMeasureNames() throws ParserConfigurationException {
Document doc = getDocument();
Element namesElt = doc.createElement("Names");
for(OcdMetricType e : OcdMetricType.class.getEnumConstants()) {
if(e.correspondsStatisticalMeasure()) {
Element nameElt = doc.createElement("Name");
nameElt.appendChild(doc.createTextNode(e.name()));
namesElt.appendChild(nameElt);
}
}
doc.appendChild(namesElt);
return writeDoc(doc);
}
/**
* Creates an XML document containing all knowledge-driven measure names.
* @return The document.
* @throws ParserConfigurationException
*/
public String writeKnowledgeDrivenMeasureNames() throws ParserConfigurationException {
Document doc = getDocument();
Element namesElt = doc.createElement("Names");
for(OcdMetricType e : OcdMetricType.class.getEnumConstants()) {
if(e.correspondsKnowledgeDrivenMeasure()) {
Element nameElt = doc.createElement("Name");
nameElt.appendChild(doc.createTextNode(e.name()));
namesElt.appendChild(nameElt);
}
}
doc.appendChild(namesElt);
return writeDoc(doc);
}
/**
* Creates an XML document containing all ground truth benchmark names.
* @return The document.
* @throws ParserConfigurationException
*/
public String writeGroundTruthBenchmarkNames() throws ParserConfigurationException {
Document doc = getDocument();
Element namesElt = doc.createElement("Names");
for(GraphCreationType e : GraphCreationType.class.getEnumConstants()) {
if(e.correspondsGroundTruthBenchmark()) {
Element nameElt = doc.createElement("Name");
nameElt.appendChild(doc.createTextNode(e.name()));
namesElt.appendChild(nameElt);
}
}
doc.appendChild(namesElt);
return writeDoc(doc);
}
/**
* Creates an XML document containing all ocd algorithm names.
* @return The document.
* @throws ParserConfigurationException
*/
public String writeAlgorithmNames() throws ParserConfigurationException {
Document doc = getDocument();
Element namesElt = doc.createElement("Names");
for(CoverCreationType e : CoverCreationType.class.getEnumConstants()) {
if(e.correspondsAlgorithm()) {
Element nameElt = doc.createElement("Name");
nameElt.appendChild(doc.createTextNode(e.name()));
namesElt.appendChild(nameElt);
}
}
doc.appendChild(namesElt);
return writeDoc(doc);
}
}