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;
import java.util.HashMap;
import javax.servlet.ServletContext;
import org.apache.commons.logging.Log;
@ -17,8 +15,19 @@ public abstract class BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseTemplateModel.class);
protected static ServletContext servletContext = null;
public VitroRequest vitroRequest = null;
protected static ServletContext servletContext;
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)
protected String getUrl(String 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;
public class User extends BaseTemplateModel {
private final VitroRequest vreq;
private final UserAccount currentUser;
private final String profileUrl;
public User(VitroRequest vreq) {
this.vreq = vreq;
super(vreq);
this.currentUser = LoginStatusBean.getCurrentUser(vreq);
this.profileUrl = figureAssociatedProfileUrl();
}

View file

@ -32,15 +32,14 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseIndividualTemplateModel.class);
protected Individual individual;
protected VitroRequest vreq;
protected UrlBuilder urlBuilder;
protected GroupedPropertyList propertyList = null;
protected LoginStatusBean loginStatusBean = null;
private EditingPolicyHelper policyHelper = null;
protected GroupedPropertyList propertyList;
protected LoginStatusBean loginStatusBean;
private EditingPolicyHelper policyHelper;
public BaseIndividualTemplateModel(Individual individual, VitroRequest vreq) {
super(vreq);
this.individual = individual;
this.vreq = vreq;
this.loginStatusBean = LoginStatusBean.getBean(vreq);
// Needed for getting portal-sensitive urls. Remove if multi-portal support is removed.
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.VClass;
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.WebappDaoFactory;
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
DataPropertyStatementTemplateModel(String subjectUri, String propertyUri,
Literal literal, EditingPolicyHelper policyHelper, VitroRequest vreq) {
super(subjectUri, propertyUri, policyHelper);
super(subjectUri, propertyUri, policyHelper, vreq);
this.value = literal.getLexicalForm();
this.vitroRequest = vreq;
setEditAccess(literal, policyHelper, propertyUri);
}
@ -49,8 +48,7 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
* rdfs:label.
*/
DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, VitroRequest vreq, EditingPolicyHelper policyHelper) {
super(subjectUri, propertyUri, policyHelper);
vitroRequest = vreq;
super(subjectUri, propertyUri, policyHelper, vreq);
DataPropertyStatementDao dpsDao = vreq.getWebappDaoFactory().getDataPropertyStatementDao();
List<Literal> literals = dpsDao.getDataPropertyValuesForIndividualByProperty(subjectUri, propertyUri);
@ -112,9 +110,9 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
if (! isDeletable()) {
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) {
params.putAll(specialParams);
}
@ -131,11 +129,13 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
"predicateUri", propertyUri,
"datapropKey", dataPropHash,
"cmd", "delete");
//Check if special parameters being sent
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vitroRequest);
HashMap<String, String> specialParams = UrlBuilder.getSpecialParams(vreq);
if(specialParams.size() > 0) {
params.putAll(specialParams);
}
deleteUrl = UrlBuilder.getUrl(EDIT_PATH, params);
}
return deleteUrl;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -25,7 +25,8 @@ public abstract class PropertyStatementTemplateModel extends BaseTemplateModel {
protected String propertyUri = 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
// dump methods don't generate an error when they call isEditable() and isDeletable().
editAccessList = new ArrayList<EditAccess>();

View file

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

View file

@ -19,12 +19,11 @@ public abstract class BaseListedIndividual extends BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseListedIndividual.class);
protected Individual individual;
protected VitroRequest vreq;
protected Individual individual;
public BaseListedIndividual(Individual individual, VitroRequest vreq) {
super(vreq);
this.individual = individual;
this.vreq = 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 Log log = LogFactory.getLog(MainMenu.class);
protected VitroRequest vreq;
public MainMenu(){ }
public MainMenu(VitroRequest vreq) {
this.vreq = vreq;
super(vreq);
}
public void addItem(String text, String path) {

View file

@ -18,8 +18,13 @@ public class Menu extends BaseTemplateModel {
protected List<MenuItem> items;
public Menu() {
items = new ArrayList<MenuItem>();
public Menu(VitroRequest vreq) {
super(vreq);
items = new ArrayList<MenuItem>();
}
public Menu() {
items = new ArrayList<MenuItem>();
}
public void addItem(String text, String path) {

View file

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

View file

@ -23,11 +23,10 @@ public abstract class BaseIndividualSearchResult extends BaseTemplateModel {
private static final Log log = LogFactory.getLog(BaseIndividualSearchResult.class);
protected Individual individual;
protected VitroRequest vreq;
public BaseIndividualSearchResult(Individual individual, VitroRequest vreq) {
this.individual = individual;
this.vreq = vreq;
super(vreq);
this.individual = individual;
}
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);
protected Individual individual;
protected VitroRequest vreq;
public IndividualSearchResult(Individual individual, VitroRequest vreq) {
super(individual, vreq);