package org.unc.hive.services; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.servlet.ServletContext; import org.restlet.Context; import org.restlet.data.MediaType; import org.restlet.data.Request; import org.restlet.data.Response; import org.restlet.resource.Representation; import org.restlet.resource.Resource; import org.restlet.resource.ResourceException; import org.restlet.resource.StringRepresentation; import org.restlet.resource.Variant; import org.unc.hive.server.VocabularyService; import com.noelios.restlet.ext.servlet.ServletContextAdapter; import edu.unc.ils.mrc.hive.api.SKOSConcept; import edu.unc.ils.mrc.hive.api.SKOSSearcher; public class ConceptListResource extends Resource { private List<HashMap> conceptList; public ConceptListResource(Context context, Request request, Response response) { super(context, request, response); conceptList = new ArrayList<HashMap>(); // Declare the kind of representations supported by this resource. getVariants().add(new Variant(MediaType.TEXT_PLAIN)); //ServletContextAdapter adapter = (ServletContextAdapter) getContext(); //ServletContext servletContext = adapter.getServletContext(); //String path = servletContext.getRealPath(""); //System.out.println(servletContext.getRealPath("")); VocabularyService service = VocabularyService.getInstance("/home/hive/tomcat/webapps/ROOT/WEB-INF/conf/vocabularies"); // Get the "itemName" attribute value taken from the URI template // /{vocabularyName}/{SPARQLquery}. System.out.println("Size matters: " + getRequest().getAttributes().size()); for(String s : getRequest().getAttributes().keySet()) { System.out.println("Las claves son: " + s); } String SPARQLquery = (String) getRequest().getAttributes().get( "SPARQLquery"); String vocabularyName = (String) getRequest().getAttributes().get( "vocabularyName"); System.out.println("Esta es la queryyyyy!!!" + SPARQLquery); SKOSSearcher searcher = service.getSKOSSearcher(); //SPARQLquery = "SELECT ?s ?p ?p WHERE {?s ?p ?o} LIMIT 10"; SPARQLquery = SPARQLquery.replace("query=", ""); SPARQLquery = SPARQLquery.replace("+", " "); SPARQLquery = SPARQLquery.replace("%3F", "?"); SPARQLquery = SPARQLquery.replace("%7B", "{"); SPARQLquery = SPARQLquery.replace("%7D", "}"); System.out.println(SPARQLquery); this.conceptList = searcher.SPARQLSelect(SPARQLquery, vocabularyName); } @Override public Representation represent(Variant variant) throws ResourceException { Representation representation = new StringRepresentation( this.conceptList.toString(), MediaType.TEXT_PLAIN); return representation; } }