package org.hadatac.console.http;
//This Java Class was Dynamically Generated
import java.io.IOException;
import java.io.ByteArrayOutputStream;
import org.hadatac.console.controllers.metadata.DynamicFunctions;
import org.hadatac.console.models.SparqlQuery;
import org.hadatac.utils.Collections;
import org.hadatac.utils.NameSpaces;
import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QueryFactory
;import org.apache.jena.query.ResultSet;
import org.apache.jena.query.ResultSetFormatter;
public class GetSparqlQueryDynamic {
public String collection;
public GetSparqlQueryDynamic () {}
public GetSparqlQueryDynamic (SparqlQuery query) {
this(Collections.METADATA_SPARQL, query);
}
public GetSparqlQueryDynamic (String collectionSource, SparqlQuery query) {
this.collection = Collections.getCollectionsName(collectionSource);
System.out.println("Collection: " + collection);
}
public GetSparqlQueryDynamic (SparqlQuery query, String tabName) {
this(Collections.METADATA_SPARQL, query, tabName);
}
public GetSparqlQueryDynamic (String collectionSource, SparqlQuery query, String tabName) {
this.collection = Collections.getCollectionsName(collectionSource);
System.out.println("Collection: " + collection);
}
public String querySelectorGeneric(String tabName){
String indicator = DynamicFunctions.replaceTabNameWithConcept(tabName);
System.out.println("In Query Selector: " + indicator + "\n");
String q = DynamicFunctions.getPrefixes() +
"SELECT ?id ?superId ?label ?iden ?comment ?def ?unit ?note ?attrTo ?assocWith " +
"WHERE { " +
" ?id rdfs:subClassOf* " + indicator + ". " +
" ?id rdfs:subClassOf ?superId . " +
" ?id rdfs:label ?label ." +
" OPTIONAL {?id dcterms:identifier ?iden} . " +
" OPTIONAL {?id rdfs:comment ?comment} . " +
" OPTIONAL {?id skos:definition ?def} . " +
" OPTIONAL {?id hasneto:hasUnit ?unit} . " +
" OPTIONAL {?id skos:editorialNote ?note} . " +
" OPTIONAL {?id prov:wasAttributedTo ?attrTo} . " +
" OPTIONAL {?id prov:wasAssociatedWith ?assocWith} . " +
"} ";
return q;
}
public String executeQuery(String tab) throws IllegalStateException, IOException{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
String queryString = NameSpaces.getInstance().printSparqlNameSpaceList() + querySelectorGeneric(tab);
Query query = QueryFactory.create(queryString);
QueryExecution qexec = QueryExecutionFactory.sparqlService(collection, query);
ResultSet results = qexec.execSelect();
ResultSetFormatter.outputAsJSON(outputStream, results);
qexec.close();
return outputStream.toString("UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}