NIHVIVO-3236 fixes timeout bug when attaching models to TBox

This commit is contained in:
brianjlowe 2011-10-24 20:02:04 +00:00
parent 7d5a413c15
commit f346789445
3 changed files with 16 additions and 29 deletions

View file

@ -30,6 +30,11 @@ public class RegeneratingGraph implements Graph, Regenerable {
regenerate();
}
public RegeneratingGraph(Graph initGraph, GraphGenerator graphGenerator) {
this.g = initGraph;
this.generator = graphGenerator;
}
public void regenerate() {
this.g = generator.generateGraph();
}

View file

@ -15,6 +15,7 @@ import java.util.Set;
import org.apache.commons.dbcp.BasicDataSource;
import com.hp.hpl.jena.graph.Graph;
import com.hp.hpl.jena.graph.GraphMaker;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.query.Dataset;
@ -24,6 +25,7 @@ import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.ModelMaker;
import com.hp.hpl.jena.rdf.model.ModelReader;
import com.hp.hpl.jena.rdf.model.Property;
@ -169,11 +171,11 @@ public class VitroJenaSDBModelMaker implements ModelMaker {
getStore().close();
}
public Model createModel(String arg0) {
Model model = SDBFactory.connectNamedModel(getStore(), arg0);
public Model createModel(String modelName) {
Model model = getModel(modelName);
Model metadataModel = getMetadataModel();
try {
metadataModel.add(sdbResource,metadataModel.getProperty(HAS_NAMED_MODEL_URI),arg0);
metadataModel.add(sdbResource,metadataModel.getProperty(HAS_NAMED_MODEL_URI), modelName);
} finally {
metadataModel.close();
}
@ -403,8 +405,12 @@ public class VitroJenaSDBModelMaker implements ModelMaker {
return (this.hasModel(arg0)) ? SDBFactory.connectNamedModel(getStore(),arg0) : null;
}
public Model getModel(String arg0) {
return SDBFactory.connectNamedModel(getStore(), arg0);
public Model getModel(String modelName) {
SDBGraphGenerator graphGen = new SDBGraphGenerator(
bds, storeDesc, modelName);
Graph g = new RegeneratingGraph(
SDBFactory.connectNamedGraph(getStore(), modelName), graphGen);
return ModelFactory.createModelForGraph(g);
}
public Model getModel(String arg0, ModelReader arg1) {

View file

@ -147,7 +147,6 @@ public class WebappDaoFactoryJena implements WebappDaoFactory {
initPreferredLanguages();
}
this.userURI = userURI;
makeFlag2ConvenienceMaps();
Model languageUniversalsModel = ModelFactory.createDefaultModel();
if (INCLUDE_TOP_CONCEPT) {
Resource top = getTopConcept();
@ -284,29 +283,6 @@ public class WebappDaoFactoryJena implements WebappDaoFactory {
preferredLanguages[2] = "EN";
}
private void makeFlag2ConvenienceMaps() {
HashMap<String,OntClass> flag2ValueHashMap = new HashMap<String,OntClass>();
HashMap<Resource,String> flag2ClassLabelHashMap = new HashMap<Resource,String>();
for (Iterator classIt = ontModelSelector.getTBoxModel().listClasses(); classIt.hasNext(); ) {
OntClass ontClass = (OntClass) classIt.next();
String ontClassName = ontClass.getLocalName();
if(ontClassName != null && ontClass.getNameSpace().equals(VitroVocabulary.vitroURI) && ontClassName.indexOf("Flag2Value")==0) {
String ontClassLabel = ontClass.getLabel(null);
if (ontClassLabel != null) {
flag2ValueHashMap.put(ontClassLabel, ontClass);
flag2ClassLabelHashMap.put(ontClass, ontClassLabel);
}
}
}
this.flag2ValueMap = flag2ValueHashMap;
this.flag2ClassLabelMap = flag2ClassLabelHashMap;
}
private Map<Resource,String> makeFlag2ClassLabelMap() {
HashMap<Resource,String> flag2ClassLabelMap = new HashMap<Resource,String>();
return flag2ClassLabelMap;
}
/* ******************************************** */
public Map<String,String> getProperties() {