Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
OntModel ontModel = (OntModel) getServletContext().getAttribute("jenaOntModel");

Object sessionOntModel = request.getSession().getAttribute("jenaOntModel");

ctx.setAttribute("jenaOntModel", masterUnion);

Occasionally, conditional code was inserted, to retrieve a model from the Request if available, and to fall back to the Session or the Context as necessary. Such code was sporadic, and inconsistent. This sort of model juggling also involved inversions of logic, with some code acting so a model in the Request would override one in the Session, while other code would prioritize the Session model over the one in the Request. For example:

...

Note

TBD - What are we transitioning from? Check out VIVO-82.

...


  • Semantics have changed: saves code, but may alter some uses.

    • Always searches the stack
    • OMS are facades with no internal state
      • There is no way to set an OMS - set the models instead
      • Keeps consistent
      

 

prior to ModelAccess

using ModelAccess

User Accounts Model

ctx.getAttribute("userAccountsOntModel")

ModelAccess.on(ctx).getUserAccountsModel()


 

ctx.setAttribute("userAccountsOntModel", model)

ModelAccess.on(ctx).setUserAccountsModel(model)

DisplayModel

req.getAttribute("displayOntModel")

ModelAccess.on(req).getDisplayModel()


session.getAttribute("displayOntModel")

ModelAccess.on(session).getDisplayModel()


ctx.getAttribute("displayOntModel")

ModelContext.getDisplayModel(ctx)

ModelAccess.on(ctx).getDisplayModel()


ctx.setAttribute("displayOntModel", model)

ModelContext.setDisplayModel(model, ctx)

ModelAccess.on(ctx).getDisplayModel()


 

req.setAttribute("displayOntModel", model)

ModelAccess.on(req).setDisplayModel(model)

"jenaOntModel"

ctx.getAttribute("jenaOntModel")

ModelAccess.on(ctx).getJenaOntModel()


 

session.getAttribute("jenaOntModel")

ModelAccess.on(session).getJenaOntModel()


 

req.getAttribute("jenaOntModel")

ModelAccess.on(req).getJenaOntModel()


ctx.setAttribute("jenaOntModel", model)

ModelAccess.on(ctx).setOntModel(ModelID.UNION_FULL, model)


req.setAttribute("jenaOntModel", model)

ModelAccess.on(req).setOntModel(ModelID.UNION_FULL, model)

ModelAccess.on(req).setJenaOntModel(model)

"baseOntModel"

"assertionsModel"

Base Full Model

ModelContext.getBaseOntModel(ctx)

ctx.getAttribute("baseOntModel")

session.getAttribute("baseOntModel")

ModelAccess.on(ctx).getOntModel(ModelID.BASE_FULL)

ModelAccess.on(ctx).getBaseOntModel()


ModelContext.setBaseOntModel(model, ctx)

 

"inferenceModel"

Inference Full Model

ctx.getAttribute("inferenceOntModel")

ModelAccess.on(ctx).getInferenceOntModel()

...

  • "jenaOntModel" is a previous term for the Union Full model. The convenience methods getJenaOntModel() and setJenaOntModel(m)support this use.

  • "baseOntModel" and "assertionsModel" are both previous terms for the Base Full model. The convenience methods getBaseOntModel() and setBaseOntModel(m)support this use.


 

prior to ModelAccess

using ModelAccess

ontModelSelector

unionOntModelSelector

ModelContext.setOntModelSelector(model, ctx)

ModelContext.getUnionOntModelSelector(ctx)

ctx.getAttribute("ontModelSelector")

ctx.getAttribute("unionOntModelSelector")

no mutator methods

ModelAccess.on(ctx).getOntModelSelector()

ModelAccess.on(ctx).getUnionOntModelSelector()

baseOntModelSelector

ctx.getAttribute("baseOntModelSelector")

ModelAccess.on(ctx).getBaseOntModelSelector()

inferenceOntModelSelector

ctx.getAttribute("inferenceOntModelSelector")

ModelAccess.on(ctx).getInferenceOntModelSelector()

...


  • The default WebappDaoFactory is the one backed by the unionOntModelSelector. On the request level, this is also known as the "fullWebappDaoFactory". The convenience methodsgetWebappDaoFactory() and setWebappDaoFactory(wdf) support this use.

  • "baseWebappDaoFactory" and "assertionsWebappDaoFactory"  are both previous terms for the WebappDaoFactory backed by the baseOntModelSelector. The convenience methods getBaseWebappDaoFactory() and setBaseWebappDaoFactory(wdf) support this use.

  • Nobody was using the "deductionsWebappDaoFactory", so we got rid of it.