Refactoring in BaseTemplateModel hierarchy: since vreq is declared at the top level, move initializations to the top-level constructor.

This commit is contained in:
ryounes 2011-07-07 15:46:12 +00:00
parent 45ff2441c6
commit 9d3cfcba69
18 changed files with 56 additions and 50 deletions

View file

@ -2,8 +2,6 @@
package edu.cornell.mannlib.vitro.webapp.web.templatemodels; package edu.cornell.mannlib.vitro.webapp.web.templatemodels;
import java.util.HashMap;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -17,8 +15,19 @@ public abstract class BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseTemplateModel.class); private static final Log log = LogFactory.getLog(BaseTemplateModel.class);
protected static ServletContext servletContext = null; protected static ServletContext servletContext;
public VitroRequest vitroRequest = null; protected final VitroRequest vreq;
protected BaseTemplateModel(VitroRequest vreq) {
this.vreq = vreq;
}
// Some BaseTemplateModel classes don't need vreq, so provide an
// argumentless constructor.
protected BaseTemplateModel() {
this.vreq = null;
};
// Convenience method so subclasses can call getUrl(path) // Convenience method so subclasses can call getUrl(path)
protected String getUrl(String path) { protected String getUrl(String path) {
return UrlBuilder.getUrl(path); return UrlBuilder.getUrl(path);

View file

@ -16,12 +16,11 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.SiteAdminControlle
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
public class User extends BaseTemplateModel { public class User extends BaseTemplateModel {
private final VitroRequest vreq;
private final UserAccount currentUser; private final UserAccount currentUser;
private final String profileUrl; private final String profileUrl;
public User(VitroRequest vreq) { public User(VitroRequest vreq) {
this.vreq = vreq; super(vreq);
this.currentUser = LoginStatusBean.getCurrentUser(vreq); this.currentUser = LoginStatusBean.getCurrentUser(vreq);
this.profileUrl = figureAssociatedProfileUrl(); this.profileUrl = figureAssociatedProfileUrl();
} }

View file

@ -32,15 +32,14 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseIndividualTemplateModel.class); private static final Log log = LogFactory.getLog(BaseIndividualTemplateModel.class);
protected Individual individual; protected Individual individual;
protected VitroRequest vreq;
protected UrlBuilder urlBuilder; protected UrlBuilder urlBuilder;
protected GroupedPropertyList propertyList = null; protected GroupedPropertyList propertyList;
protected LoginStatusBean loginStatusBean = null; protected LoginStatusBean loginStatusBean;
private EditingPolicyHelper policyHelper = null; private EditingPolicyHelper policyHelper;
public BaseIndividualTemplateModel(Individual individual, VitroRequest vreq) { public BaseIndividualTemplateModel(Individual individual, VitroRequest vreq) {
super(vreq);
this.individual = individual; this.individual = individual;
this.vreq = vreq;
this.loginStatusBean = LoginStatusBean.getBean(vreq); this.loginStatusBean = LoginStatusBean.getBean(vreq);
// Needed for getting portal-sensitive urls. Remove if multi-portal support is removed. // Needed for getting portal-sensitive urls. Remove if multi-portal support is removed.
this.urlBuilder = new UrlBuilder(vreq.getAppBean()); this.urlBuilder = new UrlBuilder(vreq.getAppBean());

View file

@ -23,9 +23,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyStatementDao;
import edu.cornell.mannlib.vitro.webapp.dao.VClassDao; import edu.cornell.mannlib.vitro.webapp.dao.VClassDao;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateModel { public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateModel {

View file

@ -34,10 +34,9 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
//Extended to include vitro request to check for special parameters //Extended to include vitro request to check for special parameters
DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, DataPropertyStatementTemplateModel(String subjectUri, String propertyUri,
Literal literal, EditingPolicyHelper policyHelper, VitroRequest vreq) { Literal literal, EditingPolicyHelper policyHelper, VitroRequest vreq) {
super(subjectUri, propertyUri, policyHelper); super(subjectUri, propertyUri, policyHelper, vreq);
this.value = literal.getLexicalForm(); this.value = literal.getLexicalForm();
this.vitroRequest = vreq;
setEditAccess(literal, policyHelper, propertyUri); setEditAccess(literal, policyHelper, propertyUri);
} }
@ -49,8 +48,7 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
* rdfs:label. * rdfs:label.
*/ */
DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, VitroRequest vreq, EditingPolicyHelper policyHelper) { DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, VitroRequest vreq, EditingPolicyHelper policyHelper) {
super(subjectUri, propertyUri, policyHelper); super(subjectUri, propertyUri, policyHelper, vreq);
vitroRequest = vreq;
DataPropertyStatementDao dpsDao = vreq.getWebappDaoFactory().getDataPropertyStatementDao(); DataPropertyStatementDao dpsDao = vreq.getWebappDaoFactory().getDataPropertyStatementDao();
List<Literal> literals = dpsDao.getDataPropertyValuesForIndividualByProperty(subjectUri, propertyUri); List<Literal> literals = dpsDao.getDataPropertyValuesForIndividualByProperty(subjectUri, propertyUri);
@ -112,9 +110,9 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
if (! isDeletable()) { if (! isDeletable()) {
params.put("deleteProhibited", "prohibited"); params.put("deleteProhibited", "prohibited");
} }
//Check if special parameters being sent
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vitroRequest); //Check if special parameters being sent
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vreq);
if(specialParams.size() > 0) { if(specialParams.size() > 0) {
params.putAll(specialParams); params.putAll(specialParams);
} }
@ -131,11 +129,13 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
"predicateUri", propertyUri, "predicateUri", propertyUri,
"datapropKey", dataPropHash, "datapropKey", dataPropHash,
"cmd", "delete"); "cmd", "delete");
//Check if special parameters being sent //Check if special parameters being sent
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vitroRequest); HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vreq);
if(specialParams.size() > 0) { if(specialParams.size() > 0) {
params.putAll(specialParams); params.putAll(specialParams);
} }
deleteUrl = UrlBuilder.getUrl(EDIT_PATH, params); deleteUrl = UrlBuilder.getUrl(EDIT_PATH, params);
} }
return deleteUrl; return deleteUrl;

View file

@ -37,7 +37,6 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel {
EditingPolicyHelper policyHelper, List<DataProperty> populatedDataPropertyList) { EditingPolicyHelper policyHelper, List<DataProperty> populatedDataPropertyList) {
super(dp, subject, policyHelper, vreq); super(dp, subject, policyHelper, vreq);
vitroRequest = vreq;
setName(dp.getPublicName()); setName(dp.getPublicName());
statements = new ArrayList<DataPropertyStatementTemplateModel>(); statements = new ArrayList<DataPropertyStatementTemplateModel>();
@ -106,7 +105,7 @@ public class DataPropertyTemplateModel extends PropertyTemplateModel {
"predicateUri", propertyUri); "predicateUri", propertyUri);
//Check if special parameters being sent //Check if special parameters being sent
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vitroRequest); HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vreq);
if(specialParams.size() > 0) { if(specialParams.size() > 0) {
params.putAll(specialParams); params.putAll(specialParams);
} }

View file

@ -56,8 +56,8 @@ public class GroupedPropertyList extends BaseTemplateModel {
private List<PropertyGroupTemplateModel> groups; private List<PropertyGroupTemplateModel> groups;
GroupedPropertyList(Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper) { GroupedPropertyList(Individual subject, VitroRequest vreq, EditingPolicyHelper policyHelper) {
super(vreq);
this.subject = subject; this.subject = subject;
this.vreq = vreq;
this.wdf = vreq.getWebappDaoFactory(); this.wdf = vreq.getWebappDaoFactory();
boolean editing = policyHelper != null; boolean editing = policyHelper != null;

View file

@ -28,18 +28,17 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl
private Map<String, String> data; private Map<String, String> data;
// Used for editing // Used for editing
private String objectUri = null; private String objectUri;
private String templateName = null; private String templateName;
private VitroRequest vitroRequest = null;
//Updating to include Vitro Request //Updating to include Vitro Request
ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri, String objectKey, ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri, String objectKey,
Map<String, String> data, EditingPolicyHelper policyHelper, String templateName, VitroRequest vreq) { Map<String, String> data, EditingPolicyHelper policyHelper, String templateName, VitroRequest vreq) {
super(subjectUri, propertyUri, policyHelper); super(subjectUri, propertyUri, policyHelper, vreq);
this.data = data; this.data = data;
this.objectUri = data.get(objectKey); this.objectUri = data.get(objectKey);
this.templateName = templateName; this.templateName = templateName;
this.vitroRequest = vreq;
setEditAccess(policyHelper); setEditAccess(policyHelper);
} }
@ -52,8 +51,7 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl
*/ */
ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri, ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri,
VitroRequest vreq, EditingPolicyHelper policyHelper) { VitroRequest vreq, EditingPolicyHelper policyHelper) {
super(subjectUri, propertyUri, policyHelper); super(subjectUri, propertyUri, policyHelper, vreq);
vitroRequest = vreq;
} }
private void setEditAccess(EditingPolicyHelper policyHelper) { private void setEditAccess(EditingPolicyHelper policyHelper) {
@ -96,11 +94,13 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl
if (! isDeletable()) { if (! isDeletable()) {
params.put("deleteProhibited", "prohibited"); params.put("deleteProhibited", "prohibited");
} }
//Check if special parameters being sent //Check if special parameters being sent
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vitroRequest); HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vreq);
if(specialParams.size() > 0) { if(specialParams.size() > 0) {
params.putAll(specialParams); params.putAll(specialParams);
} }
editUrl = UrlBuilder.getUrl(EDIT_PATH, params); editUrl = UrlBuilder.getUrl(EDIT_PATH, params);
} }
@ -130,11 +130,13 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl
} }
} }
params.put("templateName", templateName); params.put("templateName", templateName);
//Check if special parameters being sent //Check if special parameters being sent
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vitroRequest); HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vreq);
if(specialParams.size() > 0) { if(specialParams.size() > 0) {
params.putAll(specialParams); params.putAll(specialParams);
} }
deleteUrl = UrlBuilder.getUrl(EDIT_PATH, params); deleteUrl = UrlBuilder.getUrl(EDIT_PATH, params);
} }

View file

@ -101,7 +101,6 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
throws InvalidConfigurationException { throws InvalidConfigurationException {
super(op, subject, policyHelper, vreq); super(op, subject, policyHelper, vreq);
this.vitroRequest = vreq;
setName(op.getDomainPublic()); setName(op.getDomainPublic());
// Get the config for this object property // Get the config for this object property

View file

@ -28,6 +28,7 @@ public class PropertyGroupTemplateModel extends BaseTemplateModel {
PropertyGroupTemplateModel(VitroRequest vreq, PropertyGroup group, PropertyGroupTemplateModel(VitroRequest vreq, PropertyGroup group,
Individual subject, EditingPolicyHelper policyHelper, Individual subject, EditingPolicyHelper policyHelper,
List<DataProperty> populatedDataPropertyList, List<ObjectProperty> populatedObjectPropertyList) { List<DataProperty> populatedDataPropertyList, List<ObjectProperty> populatedObjectPropertyList) {
this.name = group.getName(); this.name = group.getName();
List<Property> propertyList = group.getPropertyList(); List<Property> propertyList = group.getPropertyList();

View file

@ -25,7 +25,8 @@ public abstract class PropertyStatementTemplateModel extends BaseTemplateModel {
protected String propertyUri = null; protected String propertyUri = null;
private List<EditAccess> editAccessList = null; private List<EditAccess> editAccessList = null;
PropertyStatementTemplateModel(String subjectUri, String propertyUri, EditingPolicyHelper policyHelper) { PropertyStatementTemplateModel(String subjectUri, String propertyUri, EditingPolicyHelper policyHelper, VitroRequest vreq) {
super(vreq);
// Instantiate the list even if not editing, so calls to getEditUrl() and getDeleteUrl() from // Instantiate the list even if not editing, so calls to getEditUrl() and getDeleteUrl() from
// dump methods don't generate an error when they call isEditable() and isDeletable(). // dump methods don't generate an error when they call isEditable() and isDeletable().
editAccessList = new ArrayList<EditAccess>(); editAccessList = new ArrayList<EditAccess>();

View file

@ -31,13 +31,12 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel {
protected String propertyUri; protected String propertyUri;
protected Map<String, Object> verboseDisplay = null; protected Map<String, Object> verboseDisplay = null;
protected String subjectUri = null; protected String subjectUri = null;
protected VitroRequest vreq;
protected boolean addAccess = false; protected boolean addAccess = false;
PropertyTemplateModel(Property property, Individual subject, EditingPolicyHelper policyHelper, VitroRequest vreq) { PropertyTemplateModel(Property property, Individual subject, EditingPolicyHelper policyHelper, VitroRequest vreq) {
super(vreq);
subjectUri = subject.getURI(); subjectUri = subject.getURI();
propertyUri = property.getURI(); propertyUri = property.getURI();
this.vreq = vreq;
localName = property.getLocalName(); localName = property.getLocalName();
log.debug("Local name for property " + propertyUri + ": " + localName); log.debug("Local name for property " + propertyUri + ": " + localName);
setVerboseDisplayValues(property); setVerboseDisplayValues(property);

View file

@ -20,11 +20,10 @@ public abstract class BaseListedIndividual extends BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseListedIndividual.class); private static final Log log = LogFactory.getLog(BaseListedIndividual.class);
protected Individual individual; protected Individual individual;
protected VitroRequest vreq;
public BaseListedIndividual(Individual individual, VitroRequest vreq) { public BaseListedIndividual(Individual individual, VitroRequest vreq) {
super(vreq);
this.individual = individual; this.individual = individual;
this.vreq = vreq;
} }
public static List<ListedIndividual> getIndividualTemplateModels(List<Individual> individuals, VitroRequest vreq) { public static List<ListedIndividual> getIndividualTemplateModels(List<Individual> individuals, VitroRequest vreq) {

View file

@ -17,12 +17,10 @@ public class MainMenu extends Menu {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final Log log = LogFactory.getLog(MainMenu.class); private static final Log log = LogFactory.getLog(MainMenu.class);
protected VitroRequest vreq;
public MainMenu(){ } public MainMenu(){ }
public MainMenu(VitroRequest vreq) { public MainMenu(VitroRequest vreq) {
this.vreq = vreq; super(vreq);
} }
public void addItem(String text, String path) { public void addItem(String text, String path) {

View file

@ -18,6 +18,11 @@ public class Menu extends BaseTemplateModel {
protected List<MenuItem> items; protected List<MenuItem> items;
public Menu(VitroRequest vreq) {
super(vreq);
items = new ArrayList<MenuItem>();
}
public Menu() { public Menu() {
items = new ArrayList<MenuItem>(); items = new ArrayList<MenuItem>();
} }

View file

@ -21,9 +21,9 @@ public class MenuItem extends BaseTemplateModel {
} }
public MenuItem(String linkText, String path, boolean active){ public MenuItem(String linkText, String path, boolean active){
this.text= linkText; this.text = linkText;
this.path = path; this.path = path;
this.active= active; this.active = active;
} }
public String getLinkText() { public String getLinkText() {

View file

@ -23,11 +23,10 @@ public abstract class BaseIndividualSearchResult extends BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseIndividualSearchResult.class); private static final Log log = LogFactory.getLog(BaseIndividualSearchResult.class);
protected Individual individual; protected Individual individual;
protected VitroRequest vreq;
public BaseIndividualSearchResult(Individual individual, VitroRequest vreq) { public BaseIndividualSearchResult(Individual individual, VitroRequest vreq) {
this.individual = individual; super(vreq);
this.vreq = vreq; this.individual = individual;
} }
protected String getView(ClassView view) { protected String getView(ClassView view) {

View file

@ -13,7 +13,6 @@ public class IndividualSearchResult extends BaseIndividualSearchResult {
private static final Log log = LogFactory.getLog(IndividualSearchResult.class); private static final Log log = LogFactory.getLog(IndividualSearchResult.class);
protected Individual individual; protected Individual individual;
protected VitroRequest vreq;
public IndividualSearchResult(Individual individual, VitroRequest vreq) { public IndividualSearchResult(Individual individual, VitroRequest vreq) {
super(individual, vreq); super(individual, vreq);