NIHVIVO-707 Work on core:webpage custom form; committing test version for debugging

This commit is contained in:
ryounes 2011-07-11 16:09:06 +00:00
parent 43c03236d2
commit 91409c631c
4 changed files with 53 additions and 7 deletions

View file

@ -150,7 +150,6 @@ public class SparqlQueryServlet extends BaseEditController {
}
String queryParam = vreq.getParameter("query");
boolean graphPresent = false;
String[] tokens = queryParam.split("\\s");
for(int i = 0; i < tokens.length; i++){
if("graph".equalsIgnoreCase(tokens[i])){

View file

@ -36,8 +36,6 @@ public class VitroRequest extends HttpServletRequestWrapper {
private Map<String,String[]> convertedParameterMap;
private HttpServletRequest _req;
private boolean isSinglePortal;
public VitroRequest(HttpServletRequest _req) {
super(_req);

View file

@ -303,8 +303,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
Dataset dataset = w.getDataset();
dataset.getLock().enterCriticalSection(Lock.READ);
try {
QueryExecution qexec = (constructedModel == null)
? QueryExecutionFactory.create(
query, dataset, initialBindings)

View file

@ -2,21 +2,24 @@
package edu.cornell.mannlib.vitro.webapp.dao.jena;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.query.Dataset;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.RDFNode;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.shared.Lock;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
/**
* Utilities for executing queries and working with query results.
@ -102,4 +105,51 @@ public class QueryUtils {
public static String subUriForQueryVar(String queryString, String varName, String uri) {
return queryString.replaceAll("\\?" + varName + "\\b", "<" + uri + ">");
}
public static ResultSet getQueryResults(String queryStr, VitroRequest vreq) {
Dataset dataset = vreq.getDataset();
dataset.getLock().enterCriticalSection(Lock.READ);
queryStr = " SELECT ?x WHERE { ?x ?p ?y } LIMIT 10";
QueryExecution qexec = null;
ResultSet results = null;
try {
qexec = QueryExecutionFactory.create(queryStr, dataset);
results = qexec.execSelect();
} catch (Exception e) {
log.error(e, e);
} finally {
dataset.getLock().leaveCriticalSection();
if (qexec != null) {
qexec.close();
}
}
try {
/* DEBUGGING */
int maxRank = 0;
if (results.hasNext()) { // there is at most one result
log.debug("found a rank");
QuerySolution soln = results.next();
RDFNode node = soln.get("rank");
if (node != null && node.isLiteral()) {
log.debug("node value =" + node.asLiteral().getLexicalForm());
try {
int rank = node.asLiteral().getInt();
if (rank > maxRank) {
log.debug("setting maxRank to " + rank);
maxRank = rank;
}
} catch (Exception e) {
log.error("Error getting int value for rank: " + e.getMessage());
}
}
}
} catch (Exception e) {
log.error(e, e);
}
return results;
}
}