NIHVIVO-1226 made a change so that the sparql query goes through Dataset.

This commit is contained in:
ass92 2010-12-07 22:06:06 +00:00
parent e4d301cf98
commit c332d76577

View file

@ -16,6 +16,7 @@ import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.query.Dataset;
import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.QueryExecutionFactory;
@ -30,6 +31,7 @@ import com.hp.hpl.jena.rdf.model.Resource;
import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vedit.beans.LoginStatusBean;
import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.SelfEditingConfiguration; import edu.cornell.mannlib.vitro.webapp.beans.SelfEditingConfiguration;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
@ -138,7 +140,7 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
} }
log.debug("Found an Individual for netId " + username + " URI: " + uri); log.debug("Found an Individual for netId " + username + " URI: " + uri);
String blacklisted = checkForBlacklisted(ind, context); String blacklisted = checkForBlacklisted(ind, context, req);
return new SelfEditing(ind, blacklisted, false); return new SelfEditing(ind, blacklisted, false);
} }
@ -181,7 +183,7 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
* or more rows will be cause the user to be blacklisted. The first variable from * or more rows will be cause the user to be blacklisted. The first variable from
* the first solution set will be returned. * the first solution set will be returned.
*/ */
public static String checkForBlacklisted(Individual ind, ServletContext context) { public static String checkForBlacklisted(Individual ind, ServletContext context, HttpServletRequest req) {
if( ind == null || context == null ) { if( ind == null || context == null ) {
log.error("could not check for Blacklist, null individual or context"); log.error("could not check for Blacklist, null individual or context");
return NOT_BLACKLISTED; return NOT_BLACKLISTED;
@ -207,7 +209,7 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
String reasonForBlacklist = NOT_BLACKLISTED; String reasonForBlacklist = NOT_BLACKLISTED;
for( File file : files ){ for( File file : files ){
try{ try{
reasonForBlacklist = runSparqlFileForBlacklist( file, ind, context); reasonForBlacklist = runSparqlFileForBlacklist( file, ind, context, req);
if( reasonForBlacklist != NOT_BLACKLISTED ) if( reasonForBlacklist != NOT_BLACKLISTED )
break; break;
}catch(RuntimeException ex){ }catch(RuntimeException ex){
@ -228,7 +230,7 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
* token "?individualURI" is found. * token "?individualURI" is found.
*/ */
private static String runSparqlFileForBlacklist private static String runSparqlFileForBlacklist
(File file, Individual ind, ServletContext context) (File file, Individual ind, ServletContext context, HttpServletRequest req)
{ {
if( !file.canRead() ){ if( !file.canRead() ){
log.debug("cannot read blacklisting SPARQL file " + file.getName()); log.debug("cannot read blacklisting SPARQL file " + file.getName());
@ -259,12 +261,14 @@ public class SelfEditingIdentifierFactory implements IdentifierBundleFactory {
log.debug(file.getName() + " is empty"); log.debug(file.getName() + " is empty");
return NOT_BLACKLISTED; return NOT_BLACKLISTED;
} }
Model model = (Model)context.getAttribute("jenaOntModel"); // Model model = (Model)context.getAttribute("jenaOntModel");
VitroRequest request = new VitroRequest(req);
Dataset dataset = request.getDataset();
queryString = queryString.replaceAll("\\?individualURI", "<" + ind.getURI() + ">"); queryString = queryString.replaceAll("\\?individualURI", "<" + ind.getURI() + ">");
log.debug(queryString); log.debug(queryString);
Query query = QueryFactory.create(queryString); Query query = QueryFactory.create(queryString);
QueryExecution qexec = QueryExecutionFactory.create(query,model); QueryExecution qexec = QueryExecutionFactory.create(query,dataset);
try{ try{
ResultSet results = qexec.execSelect(); ResultSet results = qexec.execSelect();
while(results.hasNext()){ while(results.hasNext()){