From ebcf6079a549db6a0a2500fd77676d5bfcfad782 Mon Sep 17 00:00:00 2001 From: j2blake Date: Fri, 21 Jun 2013 14:51:33 -0400 Subject: [PATCH] VIVO-140 Modify client code to get language-aware extract from VClassGroupCache --- .../freemarker/BrowseController.java | 26 +++++-------------- .../json/GetVClassesForVClassGroup.java | 3 ++- .../generators/ManagePageGenerator.java | 6 ++--- .../utils/dataGetter/BrowseDataGetter.java | 5 ++-- .../utils/dataGetter/ClassGroupPageData.java | 5 ++-- .../utils/dataGetter/DataGetterUtils.java | 14 +++++----- .../IndividualsForClassesDataGetter.java | 7 ++--- .../menuManagement/ProcessClassGroup.java | 10 ++++--- .../menuManagement/ProcessDataGetter.java | 11 +++----- .../ProcessIndividualsForClasses.java | 8 +++--- .../menuManagement/SelectDataGetterUtils.java | 2 +- .../pageDataGetter/BrowseDataGetter.java | 8 +++--- .../pageDataGetter/ClassGroupPageData.java | 18 ++++++++----- .../IndividualsForClassesDataGetter.java | 19 +++++++++----- .../pageDataGetter/PageDataGetterUtils.java | 15 ++++++----- .../webapp/web/widgets/BrowseWidget.java | 5 ++-- 16 files changed, 85 insertions(+), 77 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java index bf7877b74..ff921ce64 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/BrowseController.java @@ -17,6 +17,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -46,7 +47,6 @@ public class BrowseController extends FreemarkerHttpServlet { protected ResponseValues processRequest(VitroRequest vreq) { Map body = new HashMap(); - String message = null; String templateName = TEMPLATE_DEFAULT; if ( vreq.getParameter("clearcache") != null ) { @@ -57,25 +57,13 @@ public class BrowseController extends FreemarkerHttpServlet { } List groups = null; - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(getServletContext()); - if ( vcgc == null ) { - log.error("Could not get VClassGroupCache"); - message = "The system is not configured correctly. Please check your logs for error messages."; - } else { - groups =vcgc.getGroups(); - List vcgroups = new ArrayList(groups.size()); - for (VClassGroup group : groups) { - vcgroups.add(new VClassGroupTemplateModel(group)); - } - body.put("classGroups", vcgroups); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); + groups =vcgc.getGroups(); + List vcgroups = new ArrayList(groups.size()); + for (VClassGroup group : groups) { + vcgroups.add(new VClassGroupTemplateModel(group)); } - - if (message != null) { - body.put("message", message); - templateName = Template.TITLED_MESSAGE.toString(); - } - - + body.put("classGroups", vcgroups); return new TemplateResponseValues(templateName, body); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/json/GetVClassesForVClassGroup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/json/GetVClassesForVClassGroup.java index 62502fbb7..1031ac56a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/json/GetVClassesForVClassGroup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/json/GetVClassesForVClassGroup.java @@ -11,6 +11,7 @@ import org.json.JSONObject; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; /** @@ -32,7 +33,7 @@ public class GetVClassesForVClassGroup extends JsonObjectProducer { throw new Exception("no URI passed for classgroupUri"); } - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(ctx); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); VClassGroup vcg = vcgc.getGroup(vcgUri); if( vcg == null ){ throw new Exception("Could not find vclassgroup: " + vcgUri); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManagePageGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManagePageGenerator.java index 6517520fd..43c820fb5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManagePageGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManagePageGenerator.java @@ -18,8 +18,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hp.hpl.jena.ontology.OntModel; -import com.hp.hpl.jena.rdf.model.Literal; -import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecutionFactory; @@ -27,6 +25,8 @@ import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.QuerySolutionMap; import com.hp.hpl.jena.query.ResultSet; +import com.hp.hpl.jena.rdf.model.Literal; +import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.ResourceFactory; import com.hp.hpl.jena.vocabulary.XSD; @@ -508,7 +508,7 @@ private String getExistingIsSelfContainedTemplateQuery() { private void addRequiredPageData(VitroRequest vreq, Map data) { MenuManagementDataUtils.includeRequiredSystemData(vreq.getSession().getServletContext(), data); data.put("classGroup", new ArrayList()); - data.put("classGroups", DataGetterUtils.getClassGroups(vreq.getSession().getServletContext())); + data.put("classGroups", DataGetterUtils.getClassGroups(vreq)); } private void addExistingPageData(VitroRequest vreq, Map data) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/BrowseDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/BrowseDataGetter.java index 34e14477c..4ef989663 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/BrowseDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/BrowseDataGetter.java @@ -25,6 +25,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.json.JsonServlet; import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.utils.JsonToFmModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -120,7 +121,7 @@ public class BrowseDataGetter extends DataGetterBase implements DataGetter { private Map getCommonValues( ServletContext context, VitroRequest vreq){ Map values = new HashMap(); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List cgList = vcgc.getGroups(); LinkedList cgtmList = new LinkedList(); for( VClassGroup classGroup : cgList){ @@ -194,7 +195,7 @@ public class BrowseDataGetter extends DataGetterBase implements DataGetter { String vcgUri = getParam(Mode.CLASS_GROUP, request, params); VitroRequest vreq = new VitroRequest(request); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(request); VClassGroup vcg = vcgc.getGroup(vcgUri); ArrayList classes = new ArrayList(vcg.size()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/ClassGroupPageData.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/ClassGroupPageData.java index c523e3a5e..234fdabf9 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/ClassGroupPageData.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/ClassGroupPageData.java @@ -19,6 +19,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -65,7 +66,7 @@ public class ClassGroupPageData extends DataGetterBase implements DataGetter{ HashMap data = new HashMap(); data.put("classGroupUri", this.classGroupUri); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List vcgList = vcgc.getGroups(); VClassGroup group = null; for( VClassGroup vcg : vcgList){ @@ -119,7 +120,7 @@ public class ClassGroupPageData extends DataGetterBase implements DataGetter{ public static VClassGroupTemplateModel getClassGroup(String classGroupUri, ServletContext context, VitroRequest vreq){ - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List vcgList = vcgc.getGroups(); VClassGroup group = null; for( VClassGroup vcg : vcgList){ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/DataGetterUtils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/DataGetterUtils.java index bf9458a17..52819025a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/DataGetterUtils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/DataGetterUtils.java @@ -12,6 +12,7 @@ import java.util.List; import java.util.Map; import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; @@ -45,6 +46,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.IndividualListCont import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.json.JsonServlet; import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; @@ -102,7 +104,7 @@ public class DataGetterUtils { * May return an empty list, but will not return null. */ private static List dataGettersForURIs(VitroRequest vreq, Model displayModel, List dgUris) - throws InstantiationException, IllegalAccessException, ClassNotFoundException, InvocationTargetException, NoSuchMethodException { + throws InstantiationException, IllegalAccessException, ClassNotFoundException, InvocationTargetException { List dgList = new ArrayList(); for( String dgURI: dgUris){ DataGetter dg =dataGetterForURI(vreq, displayModel, dgURI) ; @@ -332,7 +334,7 @@ public class DataGetterUtils { @SuppressWarnings("unchecked") Enumeration e = vreq.getParameterNames(); while(e.hasMoreElements()){ - String name = (String)e.nextElement(); + String name = e.nextElement(); log.debug("parameter: " + name); for( String value : vreq.getParameterValues(name) ){ log.debug("value for " + name + ": '" + value + "'"); @@ -550,9 +552,9 @@ public class DataGetterUtils { //Get All VClass Groups information //Used within menu management and processing //TODO: Check if more appropriate location possible - public static List> getClassGroups(ServletContext context) { + public static List> getClassGroups(HttpServletRequest req) { //Wanted this to be - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(req); List vcgList = vcgc.getGroups(); //For now encoding as hashmap with label and URI as trying to retrieve class group //results in errors for some reason @@ -570,11 +572,11 @@ public class DataGetterUtils { //TODO: Check whether this needs to be put here or elsewhere, as this is data getter specific //with respect to class groups //Need to use VClassGroupCache to retrieve class group information - this is the information returned from "for class group" - public static void getClassGroupForDataGetter(ServletContext context, Map pageData, Map templateData) { + public static void getClassGroupForDataGetter(HttpServletRequest req, Map pageData, Map templateData) { //Get the class group from VClassGroup, this is the same as the class group for the class group page data getter //and the associated class group (not custom) for individuals datagetter String classGroupUri = (String) pageData.get("classGroupUri"); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(req); VClassGroup group = vcgc.getGroup(classGroupUri); templateData.put("classGroup", group); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/IndividualsForClassesDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/IndividualsForClassesDataGetter.java index 1c2bc7d6c..2e5012719 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/IndividualsForClassesDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/IndividualsForClassesDataGetter.java @@ -30,6 +30,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -227,7 +228,7 @@ public class IndividualsForClassesDataGetter extends DataGetterBase implements D log.debug("Processing classes that will be displayed"); List vClasses = new ArrayList(); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); for(String classUri: classes) { //Retrieve vclass from cache to get the count VClass vclass = vcgc.getCachedVClass(classUri); @@ -262,7 +263,7 @@ public class IndividualsForClassesDataGetter extends DataGetterBase implements D List restrictVClasses = new ArrayList(); List urlEncodedRestrictClasses = new ArrayList(); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); if(restrictClasses.size() > 0) { //classes for restriction are not displayed so don't need to include their class individual counts @@ -306,7 +307,7 @@ public class IndividualsForClassesDataGetter extends DataGetterBase implements D public static VClassGroupTemplateModel getClassGroup(String classGroupUri, ServletContext context, VitroRequest vreq){ - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List vcgList = vcgc.getGroups(); VClassGroup group = null; for( VClassGroup vcg : vcgList){ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessClassGroup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessClassGroup.java index d09c0a5cd..89baf89da 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessClassGroup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessClassGroup.java @@ -4,7 +4,7 @@ package edu.cornell.mannlib.vitro.webapp.utils.menuManagement; import java.util.Map; -import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -28,19 +28,21 @@ public class ProcessClassGroup implements ProcessDataGetter{ //template data represents what needs to be modified and returned to template //page data is data retrieved from data getter - public void populateTemplate(ServletContext context, Map pageData, Map templateData) { + @Override + public void populateTemplate(HttpServletRequest req, Map pageData, Map templateData) { //This is a class group page so templateData.put("isClassGroupPage", true); templateData.put("includeAllClasses", true); //Get the class group from VClassGroup - DataGetterUtils.getClassGroupForDataGetter(context, pageData, templateData); + DataGetterUtils.getClassGroupForDataGetter(req, pageData, templateData); } //Process submission - public Model processSubmission(VitroRequest vreq, Resource dataGetterResource) { + @Override + public Model processSubmission(VitroRequest vreq, Resource dataGetterResource) { Model dgModel = ModelFactory.createDefaultModel(); String dataGetterTypeUri = DataGetterUtils.generateDataGetterTypeURI(ClassGroupPageData.class.getName()); dgModel.add(dgModel.createStatement(dataGetterResource, diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessDataGetter.java index 353e59e88..49c3e9263 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessDataGetter.java @@ -4,18 +4,15 @@ package edu.cornell.mannlib.vitro.webapp.utils.menuManagement; import java.util.Map; -import javax.servlet.ServletContext; - -import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; - -import org.json.JSONObject; +import javax.servlet.http.HttpServletRequest; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Resource; +import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; + public interface ProcessDataGetter{ - public void populateTemplate(ServletContext context, Map pageData, Map templateData); + public void populateTemplate(HttpServletRequest req, Map pageData, Map templateData); public Model processSubmission(VitroRequest vreq, Resource dataGetterResource); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessIndividualsForClasses.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessIndividualsForClasses.java index 802a82e48..105c4cf0d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessIndividualsForClasses.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/ProcessIndividualsForClasses.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -34,12 +34,13 @@ public class ProcessIndividualsForClasses implements ProcessDataGetter { /**Retrieve and populate**/ //Based on institutional internal page and not general individualsForClasses - public void populateTemplate(ServletContext context, Map pageData, Map templateData) { + @Override + public void populateTemplate(HttpServletRequest req, Map pageData, Map templateData) { initTemplateData(templateData); populateIncludedClasses(pageData, templateData); populateRestrictedClasses(pageData, templateData); //Also save the class group for display - DataGetterUtils.getClassGroupForDataGetter(context, pageData, templateData); + DataGetterUtils.getClassGroupForDataGetter(req, pageData, templateData); } @@ -76,6 +77,7 @@ public class ProcessIndividualsForClasses implements ProcessDataGetter { public boolean useProcessor(VitroRequest vreq) { return(!allClassesSelected(vreq)); } + @Override public Model processSubmission(VitroRequest vreq, Resource dataGetterResource) { String[] selectedClasses = vreq.getParameterValues("classInClassGroup"); String dataGetterTypeUri = DataGetterUtils.generateDataGetterTypeURI(IndividualsForClassesDataGetter.class.getName()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/SelectDataGetterUtils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/SelectDataGetterUtils.java index 692ae4605..1190735cb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/SelectDataGetterUtils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/menuManagement/SelectDataGetterUtils.java @@ -30,7 +30,7 @@ public class SelectDataGetterUtils { public static void processAndRetrieveData(VitroRequest vreq, ServletContext context, Map pageData, String dataGetterClass, Map templateData) { //The type of the data getter will show how to process the data from the data getter ProcessDataGetter processor = selectProcessor(dataGetterClass); - processor.populateTemplate(context, pageData, templateData); + processor.populateTemplate(vreq, pageData, templateData); } //This will be different in VIVO than in VITRO diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java index 25222968e..7fbd63ada 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/BrowseDataGetter.java @@ -23,6 +23,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.json.JsonServlet; import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.utils.JsonToFmModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -63,7 +64,8 @@ public class BrowseDataGetter implements PageDataGetter { } //Get data servuice - public String getDataServiceUrl() { + @Override + public String getDataServiceUrl() { return UrlBuilder.getUrl("/dataservice?getSolrIndividualsByVClass=1&vclassId="); } private Map doClassAlphaDisplay( Map params, VitroRequest request, ServletContext context) throws Exception { @@ -94,7 +96,7 @@ public class BrowseDataGetter implements PageDataGetter { private Map getCommonValues( ServletContext context, VitroRequest vreq){ Map values = new HashMap(); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List cgList = vcgc.getGroups(); LinkedList cgtmList = new LinkedList(); for( VClassGroup classGroup : cgList){ @@ -168,7 +170,7 @@ public class BrowseDataGetter implements PageDataGetter { String vcgUri = getParam(Mode.CLASS_GROUP, request, params); VitroRequest vreq = new VitroRequest(request); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(request); VClassGroup vcg = vcgc.getGroup(vcgUri); ArrayList classes = new ArrayList(vcg.size()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/ClassGroupPageData.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/ClassGroupPageData.java index 92244fe8d..0e68dd4b9 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/ClassGroupPageData.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/ClassGroupPageData.java @@ -16,7 +16,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; -import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -28,12 +28,13 @@ import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateMo public class ClassGroupPageData implements PageDataGetter{ private static final Log log = LogFactory.getLog(ClassGroupPageData.class); - public Map getData(ServletContext context, VitroRequest vreq, String pageUri, Map page ){ + @Override + public Map getData(ServletContext context, VitroRequest vreq, String pageUri, Map page ){ HashMap data = new HashMap(); String classGroupUri = vreq.getWebappDaoFactory().getPageDao().getClassGroupPage(pageUri); data.put("classGroupUri", classGroupUri); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List vcgList = vcgc.getGroups(); VClassGroup group = null; for( VClassGroup vcg : vcgList){ @@ -87,7 +88,7 @@ public class ClassGroupPageData implements PageDataGetter{ public static VClassGroupTemplateModel getClassGroup(String classGroupUri, ServletContext context, VitroRequest vreq){ - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List vcgList = vcgc.getGroups(); VClassGroup group = null; for( VClassGroup vcg : vcgList){ @@ -125,12 +126,14 @@ public class ClassGroupPageData implements PageDataGetter{ return new VClassGroupTemplateModel(group); } - public String getType(){ + @Override + public String getType(){ return PageDataGetterUtils.generateDataGetterTypeURI(ClassGroupPageData.class.getName()); } //Get data servuice - public String getDataServiceUrl() { + @Override + public String getDataServiceUrl() { return UrlBuilder.getUrl("/dataservice?getSolrIndividualsByVClass=1&vclassId="); } @@ -139,7 +142,8 @@ public class ClassGroupPageData implements PageDataGetter{ * For processing of JSONObject */ //Currently empty, TODO: Review requirements - public JSONObject convertToJSON(Map dataMap, VitroRequest vreq) { + @Override + public JSONObject convertToJSON(Map dataMap, VitroRequest vreq) { JSONObject rObj = null; return rObj; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/IndividualsForClassesDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/IndividualsForClassesDataGetter.java index f8e51c9ff..3e0fd62b6 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/IndividualsForClassesDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/IndividualsForClassesDataGetter.java @@ -21,6 +21,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.dao.PageDao; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -32,7 +33,8 @@ import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateMo public class IndividualsForClassesDataGetter implements PageDataGetter{ private static final Log log = LogFactory.getLog(IndividualsForClassesDataGetter.class); protected static String restrictClassesTemplateName = null; - public Map getData(ServletContext context, VitroRequest vreq, String pageUri, Map page ){ + @Override + public Map getData(ServletContext context, VitroRequest vreq, String pageUri, Map page ){ this.setTemplateName(); HashMap data = new HashMap(); //This is the old technique of getting class intersections @@ -146,7 +148,7 @@ public class IndividualsForClassesDataGetter implements PageDataGetter{ log.debug("Processing classes that will be displayed"); List vClasses = new ArrayList(); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); for(String classUri: classes) { //Retrieve vclass from cache to get the count VClass vclass = vcgc.getCachedVClass(classUri); @@ -181,7 +183,7 @@ public class IndividualsForClassesDataGetter implements PageDataGetter{ List restrictVClasses = new ArrayList(); List urlEncodedRestrictClasses = new ArrayList(); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); if(restrictClasses.size() > 0) { //classes for restriction are not displayed so don't need to include their class individual counts @@ -225,7 +227,7 @@ public class IndividualsForClassesDataGetter implements PageDataGetter{ public static VClassGroupTemplateModel getClassGroup(String classGroupUri, ServletContext context, VitroRequest vreq){ - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(vreq); List vcgList = vcgc.getGroups(); VClassGroup group = null; for( VClassGroup vcg : vcgList){ @@ -263,18 +265,21 @@ public class IndividualsForClassesDataGetter implements PageDataGetter{ return new VClassGroupTemplateModel(group); } - public String getType(){ + @Override + public String getType(){ return PageDataGetterUtils.generateDataGetterTypeURI(IndividualsForClassesDataGetter.class.getName()); } //Get data servuice - public String getDataServiceUrl() { + @Override + public String getDataServiceUrl() { return UrlBuilder.getUrl("/dataservice?getSolrIndividualsByVClasses=1&vclassId="); } /** * For processig of JSONObject */ - public JSONObject convertToJSON(Map map, VitroRequest vreq) { + @Override + public JSONObject convertToJSON(Map map, VitroRequest vreq) { JSONObject rObj = PageDataGetterUtils.processVclassResultsJSON(map, vreq, true); return rObj; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/PageDataGetterUtils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/PageDataGetterUtils.java index 59670bb02..a29e21011 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/PageDataGetterUtils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/pageDataGetter/PageDataGetterUtils.java @@ -12,6 +12,7 @@ import java.util.List; import java.util.Map; import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; @@ -29,9 +30,9 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.IndividualListCont import edu.cornell.mannlib.vitro.webapp.controller.freemarker.IndividualListController.PageRecord; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.json.JsonServlet; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; -import edu.cornell.mannlib.vitro.webapp.utils.dataGetter.DataGetterUtils; public class PageDataGetterUtils { protected static final String DATA_GETTER_MAP = "pageTypeToDataGetterMap"; @@ -124,7 +125,7 @@ public class PageDataGetterUtils { for(String dgClassName: dataGetterClassNames) { String className = getClassNameFromUri(dgClassName); - Class clz = Class.forName(className); + Class clz = Class.forName(className); if( PageDataGetter.class.isAssignableFrom(clz)){ PageDataGetter pg = (PageDataGetter) clz.newInstance(); @@ -175,7 +176,7 @@ public class PageDataGetterUtils { @SuppressWarnings("unchecked") Enumeration e = vreq.getParameterNames(); while(e.hasMoreElements()){ - String name = (String)e.nextElement(); + String name = e.nextElement(); log.debug("parameter: " + name); for( String value : vreq.getParameterValues(name) ){ log.debug("value for " + name + ": '" + value + "'"); @@ -299,9 +300,9 @@ public class PageDataGetterUtils { //Get All VClass Groups information //Used within menu management and processing //TODO: Check if more appropriate location possible - public static List> getClassGroups(ServletContext context) { + public static List> getClassGroups(HttpServletRequest req) { //Wanted this to be - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(req); List vcgList = vcgc.getGroups(); //For now encoding as hashmap with label and URI as trying to retrieve class group //results in errors for some reason @@ -323,11 +324,11 @@ public class PageDataGetterUtils { //TODO: Check whether this needs to be put here or elsewhere, as this is data getter specific //with respect to class groups //Need to use VClassGroupCache to retrieve class group information - this is the information returned from "for class group" - public static void getClassGroupForDataGetter(ServletContext context, Map pageData, Map templateData) { + public static void getClassGroupForDataGetter(HttpServletRequest req, Map pageData, Map templateData) { //Get the class group from VClassGroup, this is the same as the class group for the class group page data getter //and the associated class group (not custom) for individuals datagetter String classGroupUri = (String) pageData.get("classGroupUri"); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(req); VClassGroup group = vcgc.getGroup(classGroupUri); templateData.put("classGroup", group); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/BrowseWidget.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/BrowseWidget.java index d48841ffc..635454ead 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/BrowseWidget.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/widgets/BrowseWidget.java @@ -21,6 +21,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.json.JsonServlet; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache; import edu.cornell.mannlib.vitro.webapp.utils.JsonToFmModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; @@ -123,7 +124,7 @@ public class BrowseWidget extends Widget { VitroRequest vreq = new VitroRequest(request); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(request); List cgList = vcgc.getGroups(); // List classGroups = @@ -186,7 +187,7 @@ public class BrowseWidget extends Widget { VitroRequest vreq = new VitroRequest(request); //VClassGroup vcg = vreq.getWebappDaoFactory().getVClassGroupDao().getGroupByURI(vcgUri); - VClassGroupCache vcgc = VClassGroupCache.getVClassGroupCache(context); + VClassGroupsForRequest vcgc = VClassGroupCache.getVClassGroups(request); VClassGroup vcg = vcgc.getGroup(vcgUri); //vreq.getWebappDaoFactory().getVClassDao().addVClassesToGroup(vcg, false, true);