NIHVIVO-3236 fixes timeout bug when attaching models to TBox
This commit is contained in:
parent
7d5a413c15
commit
f346789445
3 changed files with 16 additions and 29 deletions
|
@ -30,6 +30,11 @@ public class RegeneratingGraph implements Graph, Regenerable {
|
||||||
regenerate();
|
regenerate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RegeneratingGraph(Graph initGraph, GraphGenerator graphGenerator) {
|
||||||
|
this.g = initGraph;
|
||||||
|
this.generator = graphGenerator;
|
||||||
|
}
|
||||||
|
|
||||||
public void regenerate() {
|
public void regenerate() {
|
||||||
this.g = generator.generateGraph();
|
this.g = generator.generateGraph();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import java.util.Set;
|
||||||
|
|
||||||
import org.apache.commons.dbcp.BasicDataSource;
|
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.GraphMaker;
|
||||||
import com.hp.hpl.jena.graph.Node;
|
import com.hp.hpl.jena.graph.Node;
|
||||||
import com.hp.hpl.jena.query.Dataset;
|
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.query.QueryFactory;
|
||||||
import com.hp.hpl.jena.rdf.model.Literal;
|
import com.hp.hpl.jena.rdf.model.Literal;
|
||||||
import com.hp.hpl.jena.rdf.model.Model;
|
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.ModelMaker;
|
||||||
import com.hp.hpl.jena.rdf.model.ModelReader;
|
import com.hp.hpl.jena.rdf.model.ModelReader;
|
||||||
import com.hp.hpl.jena.rdf.model.Property;
|
import com.hp.hpl.jena.rdf.model.Property;
|
||||||
|
@ -169,11 +171,11 @@ public class VitroJenaSDBModelMaker implements ModelMaker {
|
||||||
getStore().close();
|
getStore().close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Model createModel(String arg0) {
|
public Model createModel(String modelName) {
|
||||||
Model model = SDBFactory.connectNamedModel(getStore(), arg0);
|
Model model = getModel(modelName);
|
||||||
Model metadataModel = getMetadataModel();
|
Model metadataModel = getMetadataModel();
|
||||||
try {
|
try {
|
||||||
metadataModel.add(sdbResource,metadataModel.getProperty(HAS_NAMED_MODEL_URI),arg0);
|
metadataModel.add(sdbResource,metadataModel.getProperty(HAS_NAMED_MODEL_URI), modelName);
|
||||||
} finally {
|
} finally {
|
||||||
metadataModel.close();
|
metadataModel.close();
|
||||||
}
|
}
|
||||||
|
@ -403,8 +405,12 @@ public class VitroJenaSDBModelMaker implements ModelMaker {
|
||||||
return (this.hasModel(arg0)) ? SDBFactory.connectNamedModel(getStore(),arg0) : null;
|
return (this.hasModel(arg0)) ? SDBFactory.connectNamedModel(getStore(),arg0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Model getModel(String arg0) {
|
public Model getModel(String modelName) {
|
||||||
return SDBFactory.connectNamedModel(getStore(), arg0);
|
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) {
|
public Model getModel(String arg0, ModelReader arg1) {
|
||||||
|
|
|
@ -147,7 +147,6 @@ public class WebappDaoFactoryJena implements WebappDaoFactory {
|
||||||
initPreferredLanguages();
|
initPreferredLanguages();
|
||||||
}
|
}
|
||||||
this.userURI = userURI;
|
this.userURI = userURI;
|
||||||
makeFlag2ConvenienceMaps();
|
|
||||||
Model languageUniversalsModel = ModelFactory.createDefaultModel();
|
Model languageUniversalsModel = ModelFactory.createDefaultModel();
|
||||||
if (INCLUDE_TOP_CONCEPT) {
|
if (INCLUDE_TOP_CONCEPT) {
|
||||||
Resource top = getTopConcept();
|
Resource top = getTopConcept();
|
||||||
|
@ -284,29 +283,6 @@ public class WebappDaoFactoryJena implements WebappDaoFactory {
|
||||||
preferredLanguages[2] = "EN";
|
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() {
|
public Map<String,String> getProperties() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue