NIHVIVO-2215 Fixed inability to attach SDB models to the webapp TBox
This commit is contained in:
parent
424fc2b17e
commit
d3fd975060
1 changed files with 22 additions and 7 deletions
|
@ -13,6 +13,7 @@ import java.text.Collator;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -69,6 +70,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao;
|
import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSDBModelMaker;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSDBModelMaker;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSpecialModelMaker;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSpecialModelMaker;
|
||||||
|
@ -106,6 +108,8 @@ public class JenaIngestController extends BaseEditController {
|
||||||
private static final String RENAME_RESOURCE = "/jenaIngest/renameResource.jsp";
|
private static final String RENAME_RESOURCE = "/jenaIngest/renameResource.jsp";
|
||||||
private static final String RENAME_RESULT = "/jenaIngest/renameResult.jsp";
|
private static final String RENAME_RESULT = "/jenaIngest/renameResult.jsp";
|
||||||
|
|
||||||
|
private static final Map<String, Model> attachedModels = new HashMap<String, Model>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doGet(HttpServletRequest request, HttpServletResponse response){
|
public void doGet(HttpServletRequest request, HttpServletResponse response){
|
||||||
if (!isAuthorizedToDisplayPage(request, response, new Actions(
|
if (!isAuthorizedToDisplayPage(request, response, new Actions(
|
||||||
|
@ -820,17 +824,28 @@ public class JenaIngestController extends BaseEditController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doAttachModel(String modelName, ModelMaker modelMaker) {
|
private void doAttachModel(String modelName, ModelMaker modelMaker) {
|
||||||
|
if (attachedModels.containsKey(modelName)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
Model m = modelMaker.getModel(modelName);
|
Model m = modelMaker.getModel(modelName);
|
||||||
OntModel vitroJenaModel = (OntModel) getServletContext().getAttribute("baseOntModel");
|
ModelContext.getBaseOntModelSelector(getServletContext()).getTBoxModel().addSubModel(m);
|
||||||
System.out.println("Attaching "+modelName+" ("+m.hashCode()+") to webapp");
|
ModelContext.getBaseOntModelSelector(getServletContext()).getABoxModel().addSubModel(m);
|
||||||
vitroJenaModel.addSubModel(m);
|
ModelContext.getUnionOntModelSelector(getServletContext()).getABoxModel().addSubModel(m);
|
||||||
|
ModelContext.getUnionOntModelSelector(getServletContext()).getTBoxModel().addSubModel(m);
|
||||||
|
attachedModels.put(modelName, m);
|
||||||
|
log.info("Attached " + modelName + " (" + m.hashCode() + ") to webapp");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doDetachModel(String modelName, ModelMaker modelMaker) {
|
private void doDetachModel(String modelName, ModelMaker modelMaker) {
|
||||||
Model m = modelMaker.getModel(modelName);
|
Model m = attachedModels.get(modelName);
|
||||||
OntModel vitroJenaModel = (OntModel) getServletContext().getAttribute("baseOntModel");
|
if (m == null) {
|
||||||
System.out.println("Detaching "+modelName+" ("+m.hashCode()+") from webapp");
|
return;
|
||||||
vitroJenaModel.removeSubModel(m);
|
}
|
||||||
|
ModelContext.getBaseOntModelSelector(getServletContext()).getTBoxModel().removeSubModel(m);
|
||||||
|
ModelContext.getBaseOntModelSelector(getServletContext()).getABoxModel().removeSubModel(m);
|
||||||
|
ModelContext.getUnionOntModelSelector(getServletContext()).getABoxModel().removeSubModel(m);
|
||||||
|
ModelContext.getUnionOntModelSelector(getServletContext()).getTBoxModel().removeSubModel(m);
|
||||||
|
log.info("Detached " + modelName + " (" + m.hashCode() + ") from webapp");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doRenameBNodes(VitroRequest vreq, String namespaceEtc, boolean patternBoolean, String pattern, String[] sourceModel) {
|
private void doRenameBNodes(VitroRequest vreq, String namespaceEtc, boolean patternBoolean, String pattern, String[] sourceModel) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue