package org.aksw.sparqlify.admin.web.endpoint;
import java.util.Map;
import javax.annotation.Resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.aksw.service_framework.core.SparqlService;
import org.aksw.sparqlify.config.syntax.Config;
import org.springframework.stereotype.Service;
import com.google.gson.Gson;
@Service
@Path("/{path}/sparql/namespaces.js")
//@Produces("application/json")
public class SnorqlNamespacesServlet {
@Resource(name="sparqlServiceMap")
private Map<String, SparqlService> nameToConfig;
//private Map<String, PrefixMapping> nameToConfig;
//
// @Resource
// private Config config;
//
// public Config getConfig() {
// return config;
// }
//
// public void setConfig(Config config) {
// this.config = config;
// }
@GET
@Produces({ MediaType.APPLICATION_JSON, "application/sparql-results+json" })
public String getNamespaces(@PathParam("path") String path) {
//Config config = nameToConfig.get(path);
//PrefixMapping prefixMapping = nameToConfig.get(path);
SparqlService sparqlService = nameToConfig.get(path);
String jsonMap = null;
if(sparqlService != null) {
Config config = (Config)sparqlService.getConfig();
Map<String, String> map = config.getPrefixMapping().getNsPrefixMap();
//Map<String, String> map = config.getPrefixMapping().getNsPrefixMap();
Gson gson = new Gson();
jsonMap = gson.toJson(map);
} else {
jsonMap = "{}";
}
String result = "var D2R_namespacePrefixes = " + jsonMap;
return result;
}
}