VIVO-82 Use ModelAccess to access the DisplayTBox and the DisplayDisplay
This commit is contained in:
parent
864c93432f
commit
9a7a385b87
5 changed files with 50 additions and 56 deletions
|
@ -115,10 +115,6 @@ public class DisplayVocabulary {
|
||||||
public static final String USE_TBOX_MODEL_PARAM = "useThisTboxModel";
|
public static final String USE_TBOX_MODEL_PARAM = "useThisTboxModel";
|
||||||
public static final String USE_DISPLAY_MODEL_PARAM = "useThisDisplayModel";
|
public static final String USE_DISPLAY_MODEL_PARAM = "useThisDisplayModel";
|
||||||
|
|
||||||
//Attribute values used to store display tbox/display display model in servlet context
|
|
||||||
public static final String CONTEXT_DISPLAY_TBOX = "displayOntModelTBOX";
|
|
||||||
public static final String CONTEXT_DISPLAY_DISPLAY = "displayOntModelDisplayModel";
|
|
||||||
|
|
||||||
//URL for menu management
|
//URL for menu management
|
||||||
public static final String PROCESS_MENU_MANAGEMENT_URL = "/menuManagementEdit";
|
public static final String PROCESS_MENU_MANAGEMENT_URL = "/menuManagementEdit";
|
||||||
public static final String REORDER_MENU_URL = PROCESS_MENU_MANAGEMENT_URL + "?cmd=Reorder&" + SWITCH_TO_DISPLAY_MODEL + "=true";
|
public static final String REORDER_MENU_URL = PROCESS_MENU_MANAGEMENT_URL + "?cmd=Reorder&" + SWITCH_TO_DISPLAY_MODEL + "=true";
|
||||||
|
|
|
@ -18,7 +18,43 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hierarchical storage for models. TODO
|
* Hierarchical storage for models. TODO
|
||||||
|
*
|
||||||
|
* Could this be extended? Could it be used to replace or implement these
|
||||||
|
* methods?
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* VitroRequest.getAssertionsWebappDaoFactory()
|
||||||
|
* VitroRequest.getDeductionsWebappDaoFactory()
|
||||||
|
* VitroRequest.getFullWebappDaoFactory()
|
||||||
|
* VitroRequest.getRDFService()
|
||||||
|
* VitroRequest.getUnfilteredRDFService()
|
||||||
|
* VitroRequest.getWebappDaoFactory()
|
||||||
|
* VitroRequest.getWriteModel()
|
||||||
|
* VitroRequest.getJenaOntModel()
|
||||||
|
* VitroRequest.setJenaOntModel()
|
||||||
|
* OntModelSelector.getAboxModel
|
||||||
|
* OntModelSelector.getApplicationMetadataModel()
|
||||||
|
* OntModelSelector.getFullModel()
|
||||||
|
* OntModelSelector.getTBoxModel()
|
||||||
|
* OntModelSelector.getTBoxModel(ontologyURI)
|
||||||
|
* OntModelSelector.getUserAccountsModel()
|
||||||
|
* VitroModelSource.getModel(URL)
|
||||||
|
* VitroModelSource.getModel(URL, loadIfAbsent)
|
||||||
|
* VitroModelSource.openModel(name)
|
||||||
|
* VitroModelSource.openModelIfPresent(string)
|
||||||
|
* ServletContext.getAttribute("assertionsWebappDaoFactory")
|
||||||
|
* ServletContext.getAttribute("baseOntModelSelector")
|
||||||
|
* ServletContext.getAttribute("jenaPersistentOntModel")
|
||||||
|
* ServletContext.getAttribute("pelletOntModel")
|
||||||
|
* ServletContext.getAttribute("webappDaoFactory")
|
||||||
|
* VitroJenaModelMaker
|
||||||
|
* VitroJenaSpecialModelMaker
|
||||||
|
* JenaDataSourceSetupBase.getApplicationDataSource(ctx)
|
||||||
|
* JenaDataSourceSetupBase.getStartupDataset()
|
||||||
|
* HttpSession.getAttribute("jenaAuditModel")
|
||||||
|
* </pre>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ModelAccess {
|
public class ModelAccess {
|
||||||
private static final Log log = LogFactory.getLog(ModelAccess.class);
|
private static final Log log = LogFactory.getLog(ModelAccess.class);
|
||||||
|
|
||||||
|
@ -188,6 +224,12 @@ public class ModelAccess {
|
||||||
// Helper classes
|
// Helper classes
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This OntModelSelector doesn't actually hold any OntModels. Instead, it
|
||||||
|
* links back to the ModelAccess that it was created from. So, if you change
|
||||||
|
* a model on the ModelAccess, it will change on the OntModelSelector also.
|
||||||
|
* Even if the OntModelSelector was created first.
|
||||||
|
*/
|
||||||
private static class FacadeOntModelSelector implements OntModelSelector {
|
private static class FacadeOntModelSelector implements OntModelSelector {
|
||||||
private final ModelAccess parent;
|
private final ModelAccess parent;
|
||||||
private final ModelID aboxID;
|
private final ModelID aboxID;
|
||||||
|
@ -238,49 +280,4 @@ public class ModelAccess {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// public OntModel getDisplayTboxOntModel() {
|
|
||||||
// throw new RuntimeException(
|
|
||||||
// "ModelAccess.getDisplayTboxOntModel not implemented.");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public OntModel getDisplayModelDisplayOntModel() {
|
|
||||||
// throw new RuntimeException(
|
|
||||||
// "ModelAccess.getDisplayModelDisplayOntModel not implemented.");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* VitroRequest.getAssertionsWebappDaoFactory()
|
|
||||||
* VitroRequest.getDeductionsWebappDaoFactory()
|
|
||||||
* VitroRequest.getFullWebappDaoFactory()
|
|
||||||
* VitroRequest.getRDFService()
|
|
||||||
* VitroRequest.getUnfilteredRDFService()
|
|
||||||
* VitroRequest.getWebappDaoFactory()
|
|
||||||
* VitroRequest.getWriteModel()
|
|
||||||
* VitroRequest.getJenaOntModel()
|
|
||||||
* VitroRequest.setJenaOntModel()
|
|
||||||
* OntModelSelector.getAboxModel
|
|
||||||
* OntModelSelector.getApplicationMetadataModel()
|
|
||||||
* OntModelSelector.getFullModel()
|
|
||||||
* OntModelSelector.getTBoxModel()
|
|
||||||
* OntModelSelector.getTBoxModel(ontologyURI)
|
|
||||||
* OntModelSelector.getUserAccountsModel()
|
|
||||||
* VitroModelSource.getModel(URL)
|
|
||||||
* VitroModelSource.getModel(URL, loadIfAbsent)
|
|
||||||
* VitroModelSource.openModel(name)
|
|
||||||
* VitroModelSource.openModelIfPresent(string)
|
|
||||||
* ServletContext.getAttribute("assertionsWebappDaoFactory")
|
|
||||||
* ServletContext.getAttribute("baseOntModelSelector")
|
|
||||||
* ServletContext.getAttribute("jenaPersistentOntModel")
|
|
||||||
* ServletContext.getAttribute("pelletOntModel")
|
|
||||||
* ServletContext.getAttribute("webappDaoFactory")
|
|
||||||
* VitroJenaModelMaker
|
|
||||||
* VitroJenaSpecialModelMaker
|
|
||||||
* JenaDataSourceSetupBase.getApplicationDataSource(ctx)
|
|
||||||
* JenaDataSourceSetupBase.getStartupDataset()
|
|
||||||
* HttpSession.getAttribute("jenaAuditModel")
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@ import com.hp.hpl.jena.rdf.model.Model;
|
||||||
import com.hp.hpl.jena.rdf.model.ModelReader;
|
import com.hp.hpl.jena.rdf.model.ModelReader;
|
||||||
import com.hp.hpl.jena.rdf.model.ModelSource;
|
import com.hp.hpl.jena.rdf.model.ModelSource;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ModelSource that will handle specially named Vitro models such
|
* ModelSource that will handle specially named Vitro models such
|
||||||
|
@ -113,9 +113,9 @@ public class VitroModelSource implements ModelSource {
|
||||||
case DISPLAY:
|
case DISPLAY:
|
||||||
return ModelAccess.on(context).getDisplayModel();
|
return ModelAccess.on(context).getDisplayModel();
|
||||||
case DISPLAY_TBOX:
|
case DISPLAY_TBOX:
|
||||||
return (Model) context.getAttribute(DisplayVocabulary.CONTEXT_DISPLAY_TBOX);
|
return ModelAccess.on(context).getOntModel(ModelID.DISPLAY_TBOX);
|
||||||
case DISPLAY_DISPLAY:
|
case DISPLAY_DISPLAY:
|
||||||
return (Model) context.getAttribute(DisplayVocabulary.CONTEXT_DISPLAY_DISPLAY);
|
return ModelAccess.on(context).getOntModel(ModelID.DISPLAY_DISPLAY);
|
||||||
case USER_ACCOUNTS:
|
case USER_ACCOUNTS:
|
||||||
throw new IllegalArgumentException("getNamedModel() Does not yet handle USER_ACCOUNTS");
|
throw new IllegalArgumentException("getNamedModel() Does not yet handle USER_ACCOUNTS");
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
package edu.cornell.mannlib.vitro.webapp.filters;
|
package edu.cornell.mannlib.vitro.webapp.filters;
|
||||||
|
|
||||||
import static edu.cornell.mannlib.vitro.webapp.controller.VitroRequest.SPECIAL_WRITE_MODEL;
|
import static edu.cornell.mannlib.vitro.webapp.controller.VitroRequest.SPECIAL_WRITE_MODEL;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.CONTEXT_DISPLAY_TBOX;
|
|
||||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.SWITCH_TO_DISPLAY_MODEL;
|
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.SWITCH_TO_DISPLAY_MODEL;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.USE_DISPLAY_MODEL_PARAM;
|
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.USE_DISPLAY_MODEL_PARAM;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.USE_MODEL_PARAM;
|
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.USE_MODEL_PARAM;
|
||||||
|
@ -41,6 +40,7 @@ import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering;
|
import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.FilterFactory;
|
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.FilterFactory;
|
||||||
|
@ -233,7 +233,7 @@ public class VitroRequestPrep implements Filter {
|
||||||
// If they asked for the display model, give it to them.
|
// If they asked for the display model, give it to them.
|
||||||
if (isParameterPresent(vreq, SWITCH_TO_DISPLAY_MODEL)) {
|
if (isParameterPresent(vreq, SWITCH_TO_DISPLAY_MODEL)) {
|
||||||
OntModel mainOntModel = ModelAccess.on(_context).getDisplayModel();
|
OntModel mainOntModel = ModelAccess.on(_context).getDisplayModel();
|
||||||
OntModel tboxOntModel = (OntModel) _context.getAttribute(CONTEXT_DISPLAY_TBOX);
|
OntModel tboxOntModel = ModelAccess.on(_context).getOntModel(ModelID.DISPLAY_TBOX);
|
||||||
setSpecialWriteModel(vreq, mainOntModel);
|
setSpecialWriteModel(vreq, mainOntModel);
|
||||||
|
|
||||||
vreq.setAttribute(VitroRequest.ID_FOR_ABOX_MODEL, VitroModelSource.ModelName.DISPLAY.toString());
|
vreq.setAttribute(VitroRequest.ID_FOR_ABOX_MODEL, VitroModelSource.ModelName.DISPLAY.toString());
|
||||||
|
|
|
@ -23,6 +23,7 @@ import com.hp.hpl.jena.rdf.model.Model;
|
||||||
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
|
||||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||||
|
|
||||||
|
@ -83,7 +84,7 @@ implements ServletContextListener {
|
||||||
MEM_ONT_MODEL_SPEC);
|
MEM_ONT_MODEL_SPEC);
|
||||||
appTBOXModel.add(displayTboxModel);
|
appTBOXModel.add(displayTboxModel);
|
||||||
appTBOXModel.getBaseModel().register(new ModelSynchronizer(displayTboxModel));
|
appTBOXModel.getBaseModel().register(new ModelSynchronizer(displayTboxModel));
|
||||||
ctx.setAttribute("displayOntModelTBOX", appTBOXModel);
|
ModelAccess.on(ctx).setOntModel(ModelID.DISPLAY_TBOX, appTBOXModel);
|
||||||
log.debug("Loaded file " + APPPATH_LOAD + "displayTBOX.n3 into display tbox model");
|
log.debug("Loaded file " + APPPATH_LOAD + "displayTBOX.n3 into display tbox model");
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
log.error("Unable to load user application configuration model TBOX", t);
|
log.error("Unable to load user application configuration model TBOX", t);
|
||||||
|
@ -101,7 +102,7 @@ implements ServletContextListener {
|
||||||
MEM_ONT_MODEL_SPEC);
|
MEM_ONT_MODEL_SPEC);
|
||||||
appDisplayDisplayModel.add(displayDisplayModel);
|
appDisplayDisplayModel.add(displayDisplayModel);
|
||||||
appDisplayDisplayModel.getBaseModel().register(new ModelSynchronizer(displayDisplayModel));
|
appDisplayDisplayModel.getBaseModel().register(new ModelSynchronizer(displayDisplayModel));
|
||||||
ctx.setAttribute("displayOntModelDisplayModel", appDisplayDisplayModel);
|
ModelAccess.on(ctx).setOntModel(ModelID.DISPLAY_DISPLAY, appDisplayDisplayModel);
|
||||||
log.debug("Loaded file " + APPPATH_LOAD + "displayDisplay.n3 into display display model");
|
log.debug("Loaded file " + APPPATH_LOAD + "displayDisplay.n3 into display display model");
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
log.error("Unable to load user application configuration model Display Model", t);
|
log.error("Unable to load user application configuration model Display Model", t);
|
||||||
|
|
Loading…
Add table
Reference in a new issue