VIVO-225 Use URI Strings to fetch models, not enums.

This commit is contained in:
Jim Blake 2014-08-19 15:07:25 -04:00
parent 80733cdcfe
commit 7f220abf6f
19 changed files with 126 additions and 211 deletions

View file

@ -18,14 +18,11 @@ import java.util.ListIterator;
import java.util.Map;
import java.util.Random;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.ontology.OntModel;
import edu.cornell.mannlib.vedit.beans.EditProcessObject;
import edu.cornell.mannlib.vedit.beans.Option;
import edu.cornell.mannlib.vedit.util.FormUtils;
@ -34,8 +31,6 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
public class BaseEditController extends VitroHttpServlet {

View file

@ -20,13 +20,13 @@ import com.hp.hpl.jena.ontology.OntModel;
import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyStatementDao;
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyStatementDao;
import edu.cornell.mannlib.vitro.webapp.dao.UserAccountsDao;
import edu.cornell.mannlib.vitro.webapp.dao.VClassDao;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
/**
* A base class with some utility routines for page handler (created by
@ -57,7 +57,7 @@ public abstract class AbstractPageHandler {
this.ctx = vreq.getSession().getServletContext();
userAccountsModel = ModelAccess.on(ctx).getUserAccountsModel();
unionModel = ModelAccess.on(ctx).getOntModel(ModelID.UNION_FULL);
unionModel = ModelAccess.on(ctx).getOntModel(ModelNames.FULL_UNION);
WebappDaoFactory wdf = ModelAccess.on(ctx).getWebappDaoFactory();
userAccountsDao = wdf.getUserAccountsDao();

View file

@ -49,7 +49,6 @@ import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
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.event.EditEvent;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.FileGraphSetup;
@ -235,10 +234,10 @@ public class RefactorOperationController extends BaseEditController {
Model model = null;
if (ModelNames.TBOX_ASSERTIONS.equals(graphURI)) {
model = ModelAccess.on(getServletContext()).getOntModel(ModelID.BASE_TBOX);
model = ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_ASSERTIONS);
doNotify = true;
} else if (ModelNames.ABOX_ASSERTIONS.equals(graphURI)) {
model = ModelAccess.on(getServletContext()).getOntModel(ModelID.BASE_ABOX);
model = ModelAccess.on(getServletContext()).getOntModel(ModelNames.ABOX_ASSERTIONS);
doNotify = true;
} else {
model = dataset.getNamedModel(graphURI);

View file

@ -29,8 +29,8 @@ import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
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.event.EditEvent;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
public class RestrictionOperationController extends BaseEditController {
@ -47,7 +47,7 @@ public class RestrictionOperationController extends BaseEditController {
try {
OntModel ontModel = ModelAccess.on(
getServletContext()).getOntModel(ModelID.BASE_TBOX);
getServletContext()).getOntModel(ModelNames.TBOX_ASSERTIONS);
HashMap epoHash = null;
EditProcessObject epo = null;

View file

@ -29,7 +29,6 @@ import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.AuthorizationReques
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
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.JenaModelUtils;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
@ -119,7 +118,7 @@ public class JenaExportController extends BaseEditController {
if( "abox".equals(subgraphParam)){
model = ModelFactory.createDefaultModel();
if("inferred".equals(assertedOrInferredParam)){
model = ModelAccess.on(getServletContext()).getOntModel(ModelID.INFERRED_ABOX);
model = ModelAccess.on(getServletContext()).getOntModel(ModelNames.ABOX_INFERENCES);
}
else if("full".equals(assertedOrInferredParam)){
outputSparqlConstruct(ABOX_FULL_CONSTRUCT, formatParam, response);
@ -134,9 +133,9 @@ public class JenaExportController extends BaseEditController {
// so we'll extract the whole ontology and then include
// only those statements that are in the inferred graph
Model tempModel = xutil.extractTBox(
ModelAccess.on(getServletContext()).getOntModel(ModelID.UNION_TBOX),
ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_UNION),
ontologyURI);
Model inferenceModel = ModelAccess.on(getServletContext()).getOntModel(ModelID.INFERRED_TBOX);
Model inferenceModel = ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_INFERENCES);
inferenceModel.enterCriticalSection(Lock.READ);
try {
model = tempModel.intersection(inferenceModel);
@ -145,11 +144,11 @@ public class JenaExportController extends BaseEditController {
}
} else if ("full".equals(assertedOrInferredParam)) {
model = xutil.extractTBox(
ModelAccess.on(getServletContext()).getOntModel(ModelID.UNION_TBOX),
ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_UNION),
ontologyURI);
} else {
model = xutil.extractTBox(
ModelAccess.on(getServletContext()).getOntModel(ModelID.BASE_TBOX), ontologyURI);
ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_ASSERTIONS), ontologyURI);
}
}
@ -157,8 +156,8 @@ public class JenaExportController extends BaseEditController {
if("inferred".equals(assertedOrInferredParam)){
ontModel = xutil.extractTBox(
dataset, ontologyURI, ModelNames.ABOX_INFERENCES);
ontModel.addSubModel(ModelAccess.on(getServletContext()).getOntModel(ModelID.INFERRED_ABOX));
ontModel.addSubModel(ModelAccess.on(getServletContext()).getOntModel(ModelID.INFERRED_TBOX));
ontModel.addSubModel(ModelAccess.on(getServletContext()).getOntModel(ModelNames.ABOX_INFERENCES));
ontModel.addSubModel(ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_INFERENCES));
}
else if("full".equals(assertedOrInferredParam)){
outputSparqlConstruct(FULL_FULL_CONSTRUCT, formatParam, response);

View file

@ -64,7 +64,6 @@ import edu.cornell.mannlib.vitro.webapp.beans.Ontology;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelMakerID;
import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao;
import edu.cornell.mannlib.vitro.webapp.dao.jena.BlankNodeFilteringModelMaker;
@ -609,7 +608,7 @@ public class JenaIngestController extends BaseEditController {
* get baseOnt and infOnt models
*/
OntModel baseOntModel = ModelAccess.on(getServletContext()).getBaseOntModel();
OntModel tboxOntModel = ModelAccess.on(getServletContext()).getOntModel(ModelID.UNION_TBOX);
OntModel tboxOntModel = ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_UNION);
/*
* calling method that does the merge operation.
@ -758,7 +757,7 @@ public class JenaIngestController extends BaseEditController {
}
Model m = ModelFactory.createDefaultModel();
m.add(modelMaker.getModel(modelName));
ModelAccess.on(getServletContext()).getOntModel(ModelID.BASE_TBOX).addSubModel(m);
ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_ASSERTIONS).addSubModel(m);
attachedModels.put(modelName, m);
log.info("Attached " + modelName + " (" + m.hashCode() + ") to webapp");
}
@ -768,7 +767,7 @@ public class JenaIngestController extends BaseEditController {
if (m == null) {
return;
}
ModelAccess.on(getServletContext()).getOntModel(ModelID.BASE_TBOX).removeSubModel(m);
ModelAccess.on(getServletContext()).getOntModel(ModelNames.TBOX_ASSERTIONS).removeSubModel(m);
attachedModels.remove(modelName);
log.info("Detached " + modelName + " (" + m.hashCode() + ") from webapp");
}

View file

@ -35,7 +35,6 @@ import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelMakerID;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaModelUtils;
@ -440,7 +439,7 @@ public class RDFUploadController extends JenaIngestController {
}
private OntModel getTBoxModel(HttpSession session) {
return ModelAccess.on(session).getOntModel(ModelID.BASE_TBOX);
return ModelAccess.on(session).getOntModel(ModelNames.TBOX_ASSERTIONS);
}
private static final Log log = LogFactory.getLog(

View file

@ -3,6 +3,7 @@
package edu.cornell.mannlib.vitro.webapp.dao;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
@ -16,6 +17,7 @@ import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.rdf.model.ModelMaker;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.rdfservice.adapters.VitroModelFactory;
@ -52,20 +54,6 @@ public class ModelAccess {
/** These attributes should only be accessed through this class. */
private static final String ATTRIBUTE_NAME = ModelAccess.class.getName();
public enum ModelID {
APPLICATION_METADATA,
USER_ACCOUNTS,
DISPLAY, DISPLAY_DISPLAY, DISPLAY_TBOX,
BASE_ABOX, BASE_TBOX, BASE_FULL,
INFERRED_ABOX, INFERRED_TBOX, INFERRED_FULL,
UNION_ABOX, UNION_TBOX, UNION_FULL
}
public enum FactoryID {
BASE, UNION, UNFILTERED_BASE, UNFILTERED_UNION
}
@ -123,7 +111,7 @@ public class ModelAccess {
private final Scope scope;
private final ModelAccess parent;
private final Map<ModelID, OntModel> modelMap = new EnumMap<>(ModelID.class);
private final Map<String, OntModel> modelMap = new HashMap<>();
private final Map<FactoryID, WebappDaoFactory> factoryMap = new EnumMap<>(
FactoryID.class);
private final Map<ModelMakerID, ModelMaker> modelMakerMap = new EnumMap<>(
@ -139,30 +127,30 @@ public class ModelAccess {
// ----------------------------------------------------------------------
public OntModel getApplicationMetadataModel() {
return getOntModel(ModelID.APPLICATION_METADATA);
return getOntModel(ModelNames.APPLICATION_METADATA);
}
public OntModel getUserAccountsModel() {
return getOntModel(ModelID.USER_ACCOUNTS);
return getOntModel(ModelNames.USER_ACCOUNTS);
}
public OntModel getDisplayModel() {
return getOntModel(ModelID.DISPLAY);
return getOntModel(ModelNames.DISPLAY);
}
public OntModel getJenaOntModel() {
return getOntModel(ModelID.UNION_FULL);
return getOntModel(ModelNames.FULL_UNION);
}
public OntModel getBaseOntModel() {
return getOntModel(ModelID.BASE_FULL);
return getOntModel(ModelNames.FULL_ASSERTIONS);
}
public OntModel getInferenceOntModel() {
return getOntModel(ModelID.INFERRED_FULL);
return getOntModel(ModelNames.FULL_INFERENCES);
}
public void setOntModel(ModelID id, OntModel ontModel) {
public void setOntModel(String id, OntModel ontModel) {
if (ontModel == null) {
modelMap.remove(id);
} else {
@ -170,7 +158,7 @@ public class ModelAccess {
}
}
public OntModel getOntModel(ModelID id) {
public OntModel getOntModel(String id) {
if (modelMap.containsKey(id)) {
log.debug("Using " + id + " model from " + scope);
return modelMap.get(id);
@ -235,18 +223,18 @@ public class ModelAccess {
}
public OntModelSelector getBaseOntModelSelector() {
return new FacadeOntModelSelector(this, ModelID.BASE_ABOX,
ModelID.BASE_TBOX, ModelID.BASE_FULL);
return createOntModelSelector(ModelNames.ABOX_ASSERTIONS,
ModelNames.TBOX_ASSERTIONS, ModelNames.FULL_ASSERTIONS);
}
public OntModelSelector getInferenceOntModelSelector() {
return new FacadeOntModelSelector(this, ModelID.INFERRED_ABOX,
ModelID.INFERRED_TBOX, ModelID.INFERRED_FULL);
return createOntModelSelector(ModelNames.ABOX_INFERENCES,
ModelNames.TBOX_INFERENCES, ModelNames.FULL_INFERENCES);
}
public OntModelSelector getUnionOntModelSelector() {
return new FacadeOntModelSelector(this, ModelID.UNION_ABOX,
ModelID.UNION_TBOX, ModelID.UNION_FULL);
return createOntModelSelector(ModelNames.ABOX_UNION,
ModelNames.TBOX_UNION, ModelNames.FULL_UNION);
}
// ----------------------------------------------------------------------
@ -268,49 +256,55 @@ public class ModelAccess {
public void setModelMaker(ModelMakerID id, ModelMaker modelMaker) {
modelMakerMap.put(id, modelMaker);
if (id == ModelMakerID.CONFIGURATION) {
setOntModel(ModelID.USER_ACCOUNTS, modelMaker,
ModelNames.USER_ACCOUNTS);
setOntModel(ModelID.DISPLAY, modelMaker, ModelNames.DISPLAY);
setOntModel(ModelID.DISPLAY_DISPLAY, modelMaker,
ModelNames.DISPLAY_DISPLAY);
setOntModel(ModelID.DISPLAY_TBOX, modelMaker,
ModelNames.DISPLAY_TBOX);
setOntModel(modelMaker, ModelNames.USER_ACCOUNTS);
setOntModel(modelMaker, ModelNames.DISPLAY);
setOntModel(modelMaker, ModelNames.DISPLAY_DISPLAY);
setOntModel(modelMaker, ModelNames.DISPLAY_TBOX);
} else {
setOntModel(ModelID.APPLICATION_METADATA, modelMaker,
ModelNames.APPLICATION_METADATA);
setOntModel(ModelID.BASE_TBOX, modelMaker,
ModelNames.TBOX_ASSERTIONS);
setOntModel(ModelID.INFERRED_TBOX, modelMaker,
ModelNames.TBOX_INFERENCES);
setOntModel(ModelID.UNION_TBOX, modelMaker, ModelNames.TBOX_UNION);
setOntModel(ModelID.BASE_ABOX, modelMaker,
ModelNames.ABOX_ASSERTIONS);
setOntModel(ModelID.INFERRED_ABOX, modelMaker,
ModelNames.ABOX_INFERENCES);
setOntModel(ModelID.UNION_ABOX, modelMaker, ModelNames.ABOX_UNION);
setOntModel(ModelID.BASE_FULL, modelMaker,
ModelNames.FULL_ASSERTIONS);
setOntModel(ModelID.INFERRED_FULL, modelMaker,
ModelNames.FULL_INFERENCES);
setOntModel(ModelID.UNION_FULL, modelMaker, ModelNames.FULL_UNION);
setOntModel(modelMaker, ModelNames.APPLICATION_METADATA);
setOntModel(modelMaker, ModelNames.TBOX_ASSERTIONS);
setOntModel(modelMaker, ModelNames.TBOX_INFERENCES);
setOntModel(modelMaker, ModelNames.TBOX_UNION);
setOntModel(modelMaker, ModelNames.ABOX_ASSERTIONS);
setOntModel(modelMaker, ModelNames.ABOX_INFERENCES);
setOntModel(modelMaker, ModelNames.ABOX_UNION);
setOntModel(modelMaker, ModelNames.FULL_ASSERTIONS);
setOntModel(modelMaker, ModelNames.FULL_INFERENCES);
setOntModel(modelMaker, ModelNames.FULL_UNION);
/*
* KLUGE
*
* For some reason, the union of two OntModels (like this) works
* fine as the UNION_TBOX, but an OntModel wrapped around the union
* fine as the TBOX_UNION, but an OntModel wrapped around the union
* of two Models (from ModelMakers) does not work.
*
* See also the Kluge in RequestModelsPrep.
*/
setOntModel(ModelID.UNION_TBOX, VitroModelFactory.createUnion(
getOntModel(ModelID.BASE_TBOX),
getOntModel(ModelID.INFERRED_TBOX)));
setOntModel(ModelNames.TBOX_UNION, VitroModelFactory.createUnion(
getOntModel(ModelNames.TBOX_ASSERTIONS),
getOntModel(ModelNames.TBOX_INFERENCES)));
}
}
private void setOntModel(ModelID id, ModelMaker mm, String uri) {
setOntModel(id, VitroModelFactory.createOntologyModel(mm.getModel(uri)));
private void setOntModel(ModelMaker mm, String name) {
setOntModel(name,
VitroModelFactory.createOntologyModel(mm.getModel(name)));
}
private OntModelSelector createOntModelSelector(String aboxName,
String tboxName, String fullName) {
OntModelSelectorImpl oms = new OntModelSelectorImpl();
oms.setApplicationMetadataModel(getOntModel(ModelNames.APPLICATION_METADATA));
oms.setDisplayModel(getOntModel(ModelNames.DISPLAY));
oms.setUserAccountsModel(getOntModel(ModelNames.USER_ACCOUNTS));
oms.setABoxModel(getOntModel(aboxName));
oms.setTBoxModel(getOntModel(tboxName));
oms.setFullModel(getOntModel(fullName));
return oms;
}
// ----------------------------------------------------------------------
@ -325,59 +319,4 @@ public class ModelAccess {
}
}
// ----------------------------------------------------------------------
// 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 final ModelAccess parent;
private final ModelID aboxID;
private final ModelID tboxID;
private final ModelID fullID;
public FacadeOntModelSelector(ModelAccess parent, ModelID aboxID,
ModelID tboxID, ModelID fullID) {
this.parent = parent;
this.aboxID = aboxID;
this.tboxID = tboxID;
this.fullID = fullID;
}
@Override
public OntModel getABoxModel() {
return parent.getOntModel(aboxID);
}
@Override
public OntModel getTBoxModel() {
return parent.getOntModel(tboxID);
}
@Override
public OntModel getFullModel() {
return parent.getOntModel(fullID);
}
@Override
public OntModel getApplicationMetadataModel() {
return parent.getOntModel(ModelID.APPLICATION_METADATA);
}
@Override
public OntModel getUserAccountsModel() {
return parent.getOntModel(ModelID.USER_ACCOUNTS);
}
@Override
public OntModel getDisplayModel() {
return parent.getOntModel(ModelID.DISPLAY);
}
}
}

View file

@ -10,7 +10,7 @@ import com.hp.hpl.jena.rdf.model.ModelReader;
import com.hp.hpl.jena.rdf.model.ModelSource;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
/**
* ModelSource that will handle specially named Vitro models such
@ -113,9 +113,9 @@ public class VitroModelSource implements ModelSource {
case DISPLAY:
return ModelAccess.on(context).getDisplayModel();
case DISPLAY_TBOX:
return ModelAccess.on(context).getOntModel(ModelID.DISPLAY_TBOX);
return ModelAccess.on(context).getOntModel(ModelNames.DISPLAY_TBOX);
case DISPLAY_DISPLAY:
return ModelAccess.on(context).getOntModel(ModelID.DISPLAY_DISPLAY);
return ModelAccess.on(context).getOntModel(ModelNames.DISPLAY_DISPLAY);
case USER_ACCOUNTS:
throw new IllegalArgumentException("getNamedModel() Does not yet handle USER_ACCOUNTS");
default:

View file

@ -11,14 +11,14 @@ import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.ontology.OntModel;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
public class StandardModelSelector implements ModelSelector {
private static final Log log = LogFactory.getLog(StandardModelSelector.class);
public OntModel getModel(HttpServletRequest request, ServletContext context) {
return ModelAccess.on(request.getSession()).getOntModel(ModelID.UNION_ABOX);
return ModelAccess.on(request.getSession()).getOntModel(ModelNames.ABOX_UNION);
}
public static final ModelSelector selector = new StandardModelSelector();

View file

@ -26,11 +26,11 @@ import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
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.jena.RDFServiceDataset;
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroModelSource;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils.WhichService;
@ -87,7 +87,7 @@ public class ModelSwitcher {
// If they asked for the display model, give it to them.
if (isParameterPresent(vreq, SWITCH_TO_DISPLAY_MODEL)) {
OntModel mainOntModel = ModelAccess.on(_context).getDisplayModel();
OntModel tboxOntModel = ModelAccess.on(_context).getOntModel(ModelID.DISPLAY_TBOX);
OntModel tboxOntModel = ModelAccess.on(_context).getOntModel(ModelNames.DISPLAY_TBOX);
setSpecialWriteModel(vreq, mainOntModel);
vreq.setAttribute(VitroRequest.ID_FOR_ABOX_MODEL, VitroModelSource.ModelName.DISPLAY.toString());
@ -121,7 +121,7 @@ public class ModelSwitcher {
private void setSpecialWriteModel(VitroRequest vreq, OntModel mainOntModel) {
if (mainOntModel != null) {
ModelAccess.on(vreq).setOntModel(ModelID.UNION_FULL, mainOntModel);
ModelAccess.on(vreq).setOntModel(ModelNames.FULL_UNION, mainOntModel);
vreq.setAttribute(SPECIAL_WRITE_MODEL, mainOntModel);
}
}

View file

@ -2,7 +2,6 @@
package edu.cornell.mannlib.vitro.webapp.filters;
import static edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelMakerID.CONFIGURATION;
import static edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelMakerID.CONTENT;
import java.io.IOException;
@ -40,7 +39,6 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.FactoryID;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig;
import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering;
@ -51,6 +49,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceDataset;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB.SDBDatasetMode;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelMakerUtils;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.filter.LanguageFilteringRDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.filter.LanguageFilteringUtils;
@ -158,7 +157,7 @@ public class RequestModelsPrep implements Filter {
// need to see all contents regardless of language, or because we need
// to see the blank nodes that are removed during language filtering.
vreq.setLanguageNeutralUnionFullModel(ModelAccess.on(vreq).getOntModel(
ModelID.UNION_FULL));
ModelNames.FULL_UNION));
vreq.setLanguageNeutralWebappDaoFactory(new WebappDaoFactorySDB(
rdfService, createLanguageNeutralOntModelSelector(vreq),
createWadfConfig(vreq)));
@ -207,21 +206,21 @@ public class RequestModelsPrep implements Filter {
/*
* KLUGE
*
* The BASE_TBOX in the context is wrapped by an OntModel with
* The TBOX_ASSERTIONS in the context is wrapped by an OntModel with
* sub-models (file-graph models). If we wrap a new OntModel around it,
* we will lose those sub-models, so use the OntModel from the context.
*
* Do we need to do the same with INFERRED_TBOX and UNION_TBOX? Maybe
* Do we need to do the same with TBOX_INFERENCES and TBOX_UNION? Maybe
* not.
*
* See also the Kluge in ModelAccess.
*/
useModelFromContext(vreq, ModelID.BASE_TBOX);
useModelFromContext(vreq, ModelID.INFERRED_TBOX);
useModelFromContext(vreq, ModelID.UNION_TBOX);
useModelFromContext(vreq, ModelNames.TBOX_ASSERTIONS);
useModelFromContext(vreq, ModelNames.TBOX_INFERENCES);
useModelFromContext(vreq, ModelNames.TBOX_UNION);
}
private void useModelFromContext(VitroRequest vreq, ModelID modelId) {
private void useModelFromContext(VitroRequest vreq, String modelId) {
OntModel contextModel = ModelAccess.on(ctx).getOntModel(modelId);
ModelAccess.on(vreq).setOntModel(modelId, contextModel);
}
@ -233,33 +232,33 @@ public class RequestModelsPrep implements Filter {
private OntModelSelector createLanguageNeutralOntModelSelector(
VitroRequest vreq) {
OntModelSelectorImpl oms = new OntModelSelectorImpl();
oms.setABoxModel(ModelAccess.on(vreq).getOntModel(ModelID.UNION_ABOX));
oms.setTBoxModel(ModelAccess.on(vreq).getOntModel(ModelID.UNION_TBOX));
oms.setFullModel(ModelAccess.on(vreq).getOntModel(ModelID.UNION_FULL));
oms.setABoxModel(ModelAccess.on(vreq).getOntModel(ModelNames.ABOX_UNION));
oms.setTBoxModel(ModelAccess.on(vreq).getOntModel(ModelNames.TBOX_UNION));
oms.setFullModel(ModelAccess.on(vreq).getOntModel(ModelNames.FULL_UNION));
oms.setApplicationMetadataModel(ModelAccess.on(vreq).getOntModel(
ModelID.APPLICATION_METADATA));
oms.setDisplayModel(ModelAccess.on(vreq).getOntModel(ModelID.DISPLAY));
ModelNames.APPLICATION_METADATA));
oms.setDisplayModel(ModelAccess.on(vreq).getOntModel(ModelNames.DISPLAY));
oms.setUserAccountsModel(ModelAccess.on(vreq).getOntModel(
ModelID.USER_ACCOUNTS));
ModelNames.USER_ACCOUNTS));
return oms;
}
private void wrapModelsWithLanguageAwareness(VitroRequest vreq) {
wrapModelWithLanguageAwareness(vreq, ModelID.DISPLAY);
wrapModelWithLanguageAwareness(vreq, ModelID.APPLICATION_METADATA);
wrapModelWithLanguageAwareness(vreq, ModelID.BASE_TBOX);
wrapModelWithLanguageAwareness(vreq, ModelID.UNION_TBOX);
wrapModelWithLanguageAwareness(vreq, ModelID.UNION_FULL);
wrapModelWithLanguageAwareness(vreq, ModelID.BASE_FULL);
wrapModelWithLanguageAwareness(vreq, ModelNames.DISPLAY);
wrapModelWithLanguageAwareness(vreq, ModelNames.APPLICATION_METADATA);
wrapModelWithLanguageAwareness(vreq, ModelNames.TBOX_ASSERTIONS);
wrapModelWithLanguageAwareness(vreq, ModelNames.TBOX_UNION);
wrapModelWithLanguageAwareness(vreq, ModelNames.FULL_UNION);
wrapModelWithLanguageAwareness(vreq, ModelNames.FULL_ASSERTIONS);
}
private void wrapModelWithLanguageAwareness(HttpServletRequest req,
ModelID id) {
String name) {
if (isLanguageAwarenessEnabled()) {
OntModel unaware = ModelAccess.on(req).getOntModel(id);
OntModel unaware = ModelAccess.on(req).getOntModel(name);
OntModel aware = LanguageFilteringUtils
.wrapOntModelInALanguageFilter(unaware, req);
ModelAccess.on(req).setOntModel(id, aware);
ModelAccess.on(req).setOntModel(name, aware);
}
}

View file

@ -9,7 +9,6 @@ import javax.servlet.ServletContextListener;
import com.hp.hpl.jena.ontology.OntModel;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
@ -24,17 +23,10 @@ public class ConfigurationModelsSetup implements ServletContextListener {
StartupStatus ss = StartupStatus.getBean(ctx);
try {
setupModel(ctx, ModelNames.DISPLAY, "display", ModelID.DISPLAY);
setupModel(ctx, ModelNames.DISPLAY_TBOX, "displayTbox",
ModelID.DISPLAY_TBOX);
setupModel(ctx, ModelNames.DISPLAY_DISPLAY, "displayDisplay",
ModelID.DISPLAY_DISPLAY);
setupModel(ctx, ModelNames.USER_ACCOUNTS, "auth",
ModelID.USER_ACCOUNTS);
setupModel(ctx, ModelNames.DISPLAY, "display");
setupModel(ctx, ModelNames.DISPLAY_TBOX, "displayTbox");
setupModel(ctx, ModelNames.DISPLAY_DISPLAY, "displayDisplay");
setupModel(ctx, ModelNames.USER_ACCOUNTS, "auth");
ss.info(this,
"Set up the display models and the user accounts model.");
} catch (Exception e) {
@ -43,9 +35,9 @@ public class ConfigurationModelsSetup implements ServletContextListener {
}
private void setupModel(ServletContext ctx, String modelUri,
String modelPath, ModelID modelId) {
String modelPath) {
try {
OntModel ontModel = ModelAccess.on(ctx).getOntModel(modelId);
OntModel ontModel = ModelAccess.on(ctx).getOntModel(modelUri);
loadFirstTimeFiles(ctx, modelPath, ontModel);
loadEveryTimeFiles(ctx, modelPath, ontModel);
} catch (Exception e) {
@ -66,7 +58,7 @@ public class ConfigurationModelsSetup implements ServletContextListener {
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
public void contextDestroyed(ServletContextEvent sce) {
// Nothing to tear down.
}

View file

@ -25,13 +25,13 @@ import com.hp.hpl.jena.vocabulary.RDF;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.FactoryID;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceDataset;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.adapters.VitroModelFactory;
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
@ -61,14 +61,14 @@ public class ContentModelSetup extends JenaDataSourceSetupBase
RDFService rdfService = createRdfService(ctx);
createStartupDataset(ctx, rdfService);
Model applicationMetadataModel = models.getOntModel(ModelID.APPLICATION_METADATA);
Model applicationMetadataModel = models.getOntModel(ModelNames.APPLICATION_METADATA);
if (applicationMetadataModel.size()== 0) {
thisIsFirstStartup();
}
OntModel baseABoxModel = models.getOntModel(ModelID.BASE_ABOX);
OntModel baseTBoxModel = models.getOntModel(ModelID.BASE_TBOX);
OntModel baseABoxModel = models.getOntModel(ModelNames.ABOX_ASSERTIONS);
OntModel baseTBoxModel = models.getOntModel(ModelNames.TBOX_ASSERTIONS);
if (isFirstStartup()) {
initializeApplicationMetadata(ctx, applicationMetadataModel);

View file

@ -33,9 +33,9 @@ import com.hp.hpl.jena.rdf.model.ModelMaker;
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
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.BlankNodeFilteringModelMaker;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelMakerUtils;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils.WhichService;
@ -92,7 +92,7 @@ public class FileGraphSetup implements ServletContextListener {
cleanupDB(dataset, pathsToURIs(paths, TBOX),TBOX);
OntModel tboxBaseModel = ModelAccess.on(ctx).getOntModel(ModelID.BASE_TBOX);
OntModel tboxBaseModel = ModelAccess.on(ctx).getOntModel(ModelNames.TBOX_ASSERTIONS);
tboxChanged = readGraphs(paths, modelMaker, TBOX, tboxBaseModel);
} catch (ClassCastException cce) {
String errMsg = "Unable to cast servlet context attribute to the appropriate type " + cce.getLocalizedMessage();

View file

@ -22,7 +22,6 @@ import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.vocabulary.OWL;
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.jena.RDFServiceDataset;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
@ -53,9 +52,9 @@ public class SimpleReasonerSetup implements ServletContextListener {
try {
// set up Pellet reasoning for the TBox
OntModel tboxAssertionsModel = ModelAccess.on(ctx).getOntModel(ModelID.BASE_TBOX);
OntModel tboxInferencesModel = ModelAccess.on(ctx).getOntModel(ModelID.INFERRED_TBOX);
OntModel tboxUnionModel = ModelAccess.on(ctx).getOntModel(ModelID.UNION_TBOX);
OntModel tboxAssertionsModel = ModelAccess.on(ctx).getOntModel(ModelNames.TBOX_ASSERTIONS);
OntModel tboxInferencesModel = ModelAccess.on(ctx).getOntModel(ModelNames.TBOX_INFERENCES);
OntModel tboxUnionModel = ModelAccess.on(ctx).getOntModel(ModelNames.TBOX_UNION);
WebappDaoFactory wadf = ModelAccess.on(ctx).getWebappDaoFactory();

View file

@ -25,8 +25,6 @@ import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean;
import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean.ThemeInfo;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
public class ThemeInfoSetup implements ServletContextListener {

View file

@ -5,8 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.utils;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -27,8 +25,6 @@ import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyDao;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;