From e22b5d7d23a185745b97c16fc5f71f5a740b94e6 Mon Sep 17 00:00:00 2001 From: cdtank Date: Thu, 29 Jul 2010 21:13:58 +0000 Subject: [PATCH] 1. Refactored code to make it more amenable to dependency injection. Removed unnecessary state preservation from all the VisRequestHandlers. --- .../VisualizationController.java | 42 ++++++------- .../CoAuthorshipRequestHandler.java | 46 +++++++------- ...CollegePublicationCountRequestHandler.java | 44 ++++++------- .../PersonLevelRequestHandler.java | 61 ++++++++++--------- .../PersonPublicationCountRequestHandler.java | 47 +++++++------- .../utilities/UtilitiesRequestHandler.java | 54 ++++++++-------- .../visutils/IVisRequestHandler.java | 6 ++ .../visutils/VisualizationRequestHandler.java | 37 ++--------- 8 files changed, 153 insertions(+), 184 deletions(-) create mode 100644 src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/IVisRequestHandler.java diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java index 77167271..aec7df61 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java +++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java @@ -102,12 +102,17 @@ public class VisualizationController extends BaseEditController { public static final String UTILITIES_URL_VALUE = "utilities"; - public VisualizationController() { - super(); - - try { + @Override + public void init() throws ServletException { + super.init(); + try { + + String resourcePath = + getServletContext() + .getRealPath("/WEB-INF/visualization/visualizations-beans-injection.xml"); + ApplicationContext context = new ClassPathXmlApplicationContext( - "WEB-INF/visualization/visualizations-beans-injection.xml"); + resourcePath); BeanFactory factory = context; @@ -118,10 +123,10 @@ public class VisualizationController extends BaseEditController { } catch (Exception e) { - System.out.println(e.getMessage()); + e.printStackTrace(); + System.out.println(e); } - - } + } @Override @@ -144,30 +149,25 @@ public class VisualizationController extends BaseEditController { if (PERSON_PUBLICATION_COUNT_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) { - visRequestHandler = - new PersonPublicationCountRequestHandler(vreq, request, response, log); + visRequestHandler = new PersonPublicationCountRequestHandler(); } else if (COLLEGE_PUBLICATION_COUNT_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) { - visRequestHandler = - new CollegePublicationCountRequestHandler(vreq, request, response, log); + visRequestHandler = new CollegePublicationCountRequestHandler(); } else if (COAUTHORSHIP_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) { - visRequestHandler = - new CoAuthorshipRequestHandler(vreq, request, response, log); + visRequestHandler = new CoAuthorshipRequestHandler(); } else if (PERSON_LEVEL_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) { - visRequestHandler = - new PersonLevelRequestHandler(vreq, request, response, log); + visRequestHandler = new PersonLevelRequestHandler(); } else if (UTILITIES_URL_VALUE .equalsIgnoreCase(visTypeURLHandle)) { - visRequestHandler = - new UtilitiesRequestHandler(vreq, request, response, log); + visRequestHandler = new UtilitiesRequestHandler(); } else { @@ -198,7 +198,7 @@ public class VisualizationController extends BaseEditController { * This is side-effecting because the visualization content is added * to the request object. * */ - visRequestHandler.generateVisualization(dataSource); + visRequestHandler.generateVisualization(vreq, request, response, log, dataSource); System.out.println(" VIS ID TO CLASS " + visualizationIDsToClass); @@ -239,8 +239,8 @@ public class VisualizationController extends BaseEditController { HttpSession session = request.getSession(true); session.setAttribute("postLoginRequest", - vreq.getRequestURI()+( vreq.getQueryString()!=null?('?' + vreq.getQueryString()):"" )); - String redirectURL = request.getContextPath() + Controllers.SITE_ADMIN + "?login=block"; + vreq.getRequestURI()+( vreq.getQueryString()!=null?('?' + vreq.getQueryString()):"" )); + String redirectURL = request.getContextPath() + Controllers.SITE_ADMIN + "?login=block"; response.sendRedirect(redirectURL); return null; } diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java index 01b0f264..128238e0 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java @@ -31,19 +31,14 @@ import edu.cornell.mannlib.vitro.webapp.visualization.visutils.QueryHandler; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler; -public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { +public class CoAuthorshipRequestHandler implements VisualizationRequestHandler { - - public CoAuthorshipRequestHandler(VitroRequest vitroRequest, - HttpServletRequest request, HttpServletResponse response, Log log) { - - super(vitroRequest, request, response, log); - - } + public void generateVisualization(VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log, + DataSource dataSource) { - public void generateVisualization(DataSource dataSource) { - - VitroRequest vitroRequest = super.getVitroRequest(); String egoURIParam = vitroRequest.getParameter( VisualizationFrameworkConstants .INDIVIDUAL_URI_URL_HANDLE); @@ -56,7 +51,6 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { VisualizationFrameworkConstants .VIS_MODE_URL_HANDLE); - Log log = super.getLog(); QueryHandler queryManager = new CoAuthorshipQueryHandler(egoURIParam, dataSource, @@ -89,7 +83,8 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { * When the csv file is required - based on which sparkline visualization will * be rendered. * */ - prepareVisualizationQuerySparklineDataResponse(authorNodesAndEdges); + prepareVisualizationQuerySparklineDataResponse(authorNodesAndEdges, + response); return; } else { @@ -97,14 +92,14 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { * When the graphML file is required - based on which coauthorship network * visualization will be rendered. * */ - prepareVisualizationQueryNetworkDataResponse(authorNodesAndEdges); + prepareVisualizationQueryNetworkDataResponse(authorNodesAndEdges, response); return; } } } catch (MalformedQueryParametersException e) { try { - handleMalformedParameters(e.getMessage()); + handleMalformedParameters(e.getMessage(), vitroRequest, request, response, log); } catch (ServletException e1) { log.error(e1.getStackTrace()); } catch (IOException e1) { @@ -116,13 +111,13 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { } private void prepareVisualizationQueryNetworkDataResponse( - CoAuthorshipVOContainer authorNodesAndEdges) { + CoAuthorshipVOContainer authorNodesAndEdges, HttpServletResponse response) { - super.getResponse().setContentType("text/xml"); + response.setContentType("text/xml"); try { - PrintWriter responseWriter = super.getResponse().getWriter(); + PrintWriter responseWriter = response.getWriter(); /* * We are side-effecting responseWriter since we are directly manipulating the response @@ -141,7 +136,7 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { } private void prepareVisualizationQuerySparklineDataResponse( - CoAuthorshipVOContainer authorNodesAndEdges) { + CoAuthorshipVOContainer authorNodesAndEdges, HttpServletResponse response) { String outputFileName; Map> yearToCoauthors = new TreeMap>(); @@ -159,7 +154,6 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { outputFileName = "no_coauthors-per-year" + ".csv"; } - HttpServletResponse response = super.getResponse(); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName); @@ -247,12 +241,15 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { return yearToCoAuthors; } - private void handleMalformedParameters(String errorMessage) + private void handleMalformedParameters(String errorMessage, + VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log) throws ServletException, IOException { - Portal portal = super.getVitroRequest().getPortal(); + Portal portal = vitroRequest.getPortal(); - HttpServletRequest request = super.getRequest(); request.setAttribute("error", errorMessage); RequestDispatcher requestDispatcher = @@ -264,9 +261,8 @@ public class CoAuthorshipRequestHandler extends VisualizationRequestHandler { "Visualization Query Error - Individual Publication Count"); try { - requestDispatcher.forward(request, super.getResponse()); + requestDispatcher.forward(request, response); } catch (Exception e) { - Log log = super.getLog(); log.error("EntityEditController could not forward to view."); log.error(e.getMessage()); log.error(e.getStackTrace()); diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/collegepubcount/CollegePublicationCountRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/collegepubcount/CollegePublicationCountRequestHandler.java index c48fd46d..dc2f64db 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/collegepubcount/CollegePublicationCountRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/collegepubcount/CollegePublicationCountRequestHandler.java @@ -46,19 +46,14 @@ import edu.cornell.mannlib.vitro.webapp.visualization.visutils.QueryHandler; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler; -public class CollegePublicationCountRequestHandler extends VisualizationRequestHandler { +public class CollegePublicationCountRequestHandler implements VisualizationRequestHandler { - public CollegePublicationCountRequestHandler(VitroRequest vitroRequest, - HttpServletRequest request, HttpServletResponse response, Log log) { - - super(vitroRequest, request, response, log); + public void generateVisualization(VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log, + DataSource dataSource) { - } - - public void generateVisualization(DataSource dataSource) { - - ServletRequest vitroRequest = super.getVitroRequest(); - String collegeURIParam = vitroRequest.getParameter( VisualizationFrameworkConstants.INDIVIDUAL_URI_URL_HANDLE); @@ -71,7 +66,6 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH String visContainer = vitroRequest.getParameter( VisualizationFrameworkConstants.VIS_CONTAINER_URL_HANDLE); - Log log = super.getLog(); QueryHandler> queryManager = new CollegePublicationCountQueryHandler(collegeURIParam, dataSource, @@ -119,8 +113,9 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH * */ if (VisualizationFrameworkConstants.DATA_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) { prepareVisualizationQueryDataResponse( - departmentToPublicationsOverTime, - ((CollegePublicationCountQueryHandler) queryManager).getCollegeURLToVO()); + departmentToPublicationsOverTime, + ((CollegePublicationCountQueryHandler) queryManager).getCollegeURLToVO(), + response); log.debug(publishedYearsForCollege); return; @@ -148,7 +143,7 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH } catch (MalformedQueryParametersException e) { try { - handleMalformedParameters(e.getMessage()); + handleMalformedParameters(e.getMessage(), vitroRequest, request, response, log); } catch (ServletException e1) { log.error(e1.getStackTrace()); } catch (IOException e1) { @@ -211,7 +206,8 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH private void prepareVisualizationQueryPDFResponse(Individual college, List authorDocuments, - Map yearToPublicationCount) { + Map yearToPublicationCount, + HttpServletResponse response) { String authorName = null; @@ -233,7 +229,6 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH String outputFileName = UtilityFunctions.slugify(authorName + "-report") + ".pdf"; - HttpServletResponse response = super.getResponse(); response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName); @@ -271,7 +266,7 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH private void prepareVisualizationQueryDataResponse( Map> departmentToPublicationsOverTime, - Map collegeURLToVO) { + Map collegeURLToVO, HttpServletResponse response) { String collegeName = null; @@ -296,7 +291,6 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH String outputFileName = UtilityFunctions.slugify(collegeName) + "depts-pub-count" + ".csv"; - HttpServletResponse response = super.getResponse(); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName); @@ -394,12 +388,15 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH } - private void handleMalformedParameters(String errorMessage) + private void handleMalformedParameters(String errorMessage, + VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log) throws ServletException, IOException { - Portal portal = super.getVitroRequest().getPortal(); + Portal portal = vitroRequest.getPortal(); - HttpServletRequest request = super.getRequest(); request.setAttribute("error", errorMessage); RequestDispatcher requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP); @@ -408,9 +405,8 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH request.setAttribute("title", "Visualization Query Error - Individual Publication Count"); try { - requestDispatcher.forward(request, super.getResponse()); + requestDispatcher.forward(request, response); } catch (Exception e) { - Log log = super.getLog(); log.error("EntityEditController could not forward to view."); log.error(e.getMessage()); log.error(e.getStackTrace()); diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java index 5f9f60cb..b3203938 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java @@ -38,22 +38,18 @@ import edu.cornell.mannlib.vitro.webapp.visualization.visutils.QueryHandler; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler; -public class PersonLevelRequestHandler extends VisualizationRequestHandler { +public class PersonLevelRequestHandler implements VisualizationRequestHandler { private static final String EGO_PUB_SPARKLINE_VIS_CONTAINER_ID = "ego_pub_sparkline"; private static final String UNIQUE_COAUTHORS_SPARKLINE_VIS_CONTAINER_ID = "unique_coauthors_sparkline"; - public PersonLevelRequestHandler(VitroRequest vitroRequest, - HttpServletRequest request, HttpServletResponse response, Log log) { + public void generateVisualization(VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log, + DataSource dataSource) { - super(vitroRequest, request, response, log); - - } - - public void generateVisualization(DataSource dataSource) { - - VitroRequest vitroRequest = super.getVitroRequest(); String egoURIParam = vitroRequest.getParameter( VisualizationFrameworkConstants.INDIVIDUAL_URI_URL_HANDLE); @@ -63,7 +59,6 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { String visMode = vitroRequest.getParameter( VisualizationFrameworkConstants.VIS_MODE_URL_HANDLE); - Log log = super.getLog(); QueryHandler coAuthorshipQueryManager = new CoAuthorshipQueryHandler(egoURIParam, @@ -103,7 +98,8 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { * When the csv file is required - containing the unique co-authors vs how * many times they have co-authored with the ego. * */ - prepareVisualizationQueryListCoauthorsDataResponse(coAuthorshipVO); + prepareVisualizationQueryListCoauthorsDataResponse(coAuthorshipVO, + response); return; } else { @@ -111,7 +107,7 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { * When the graphML file is required - based on which co-authorship * network visualization will be rendered. * */ - prepareVisualizationQueryNetworkDataResponse(coAuthorshipVO); + prepareVisualizationQueryNetworkDataResponse(coAuthorshipVO, response); return; } @@ -159,20 +155,20 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { RequestDispatcher requestDispatcher = null; - HttpServletRequest request = super.getRequest(); - prepareVisualizationQueryStandaloneResponse( egoURIParam, publicationSparklineVO, uniqueCoauthorsSparklineVO, coAuthorshipVO, EGO_PUB_SPARKLINE_VIS_CONTAINER_ID, - UNIQUE_COAUTHORS_SPARKLINE_VIS_CONTAINER_ID); + UNIQUE_COAUTHORS_SPARKLINE_VIS_CONTAINER_ID, + vitroRequest, + request); requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP); try { - requestDispatcher.forward(request, super.getResponse()); + requestDispatcher.forward(request, response); } catch (Exception e) { log.error("EntityEditController could not forward to view."); log.error(e.getMessage()); @@ -181,7 +177,11 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { } catch (MalformedQueryParametersException e) { try { - handleMalformedParameters(e.getMessage()); + handleMalformedParameters(e.getMessage(), + vitroRequest, + request, + response, + log); } catch (ServletException e1) { log.error(e1.getStackTrace()); } catch (IOException e1) { @@ -229,7 +229,7 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { } private void prepareVisualizationQueryNetworkDataResponse( - CoAuthorshipVOContainer coAuthorsipVO) { + CoAuthorshipVOContainer coAuthorsipVO, HttpServletResponse response) { String outputFileName = ""; @@ -244,7 +244,6 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { } - HttpServletResponse response = super.getResponse(); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName); @@ -269,7 +268,7 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { } private void prepareVisualizationQueryListCoauthorsDataResponse( - CoAuthorshipVOContainer coAuthorshipVO) { + CoAuthorshipVOContainer coAuthorshipVO, HttpServletResponse response) { String outputFileName = ""; Map coAuthorsToCount = new TreeMap(); @@ -287,7 +286,6 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { } - HttpServletResponse response = super.getResponse(); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName); @@ -349,11 +347,12 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { SparklineVOContainer uniqueCoauthorsSparklineVO, CoAuthorshipVOContainer coAuthorshipVO, String egoPubSparklineVisContainer, - String uniqueCoauthorsSparklineVisContainer) { + String uniqueCoauthorsSparklineVisContainer, + VitroRequest vitroRequest, + HttpServletRequest request) { - Portal portal = super.getVitroRequest().getPortal(); + Portal portal = vitroRequest.getPortal(); - HttpServletRequest request = super.getRequest(); request.setAttribute("egoURIParam", egoURIParam); String title = ""; @@ -381,12 +380,15 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { request.setAttribute("bodyJsp", "/templates/visualization/person_level.jsp"); } - private void handleMalformedParameters(String errorMessage) + private void handleMalformedParameters(String errorMessage, + VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log) throws ServletException, IOException { - Portal portal = super.getVitroRequest().getPortal(); + Portal portal = vitroRequest.getPortal(); - HttpServletRequest request = super.getRequest(); request.setAttribute("error", errorMessage); RequestDispatcher requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP); @@ -395,9 +397,8 @@ public class PersonLevelRequestHandler extends VisualizationRequestHandler { request.setAttribute("title", "Visualization Query Error - Individual Publication Count"); try { - requestDispatcher.forward(request, super.getResponse()); + requestDispatcher.forward(request, response); } catch (Exception e) { - Log log = super.getLog(); log.error("EntityEditController could not forward to view."); log.error(e.getMessage()); log.error(e.getStackTrace()); diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java index 27d52e80..92156224 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java @@ -37,18 +37,14 @@ import edu.cornell.mannlib.vitro.webapp.visualization.visutils.QueryHandler; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler; -public class PersonPublicationCountRequestHandler extends VisualizationRequestHandler { +public class PersonPublicationCountRequestHandler implements VisualizationRequestHandler { - public PersonPublicationCountRequestHandler(VitroRequest vitroRequest, - HttpServletRequest request, HttpServletResponse response, Log log) { - - super(vitroRequest, request, response, log); + public void generateVisualization(VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log, + DataSource dataSource) { - } - - public void generateVisualization(DataSource dataSource) { - - VitroRequest vitroRequest = super.getVitroRequest(); String individualURIParam = vitroRequest.getParameter( VisualizationFrameworkConstants .INDIVIDUAL_URI_URL_HANDLE); @@ -65,7 +61,6 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa VisualizationFrameworkConstants .VIS_CONTAINER_URL_HANDLE); - Log log = super.getLog(); QueryHandler> queryManager = new PersonPublicationCountQueryHandler(individualURIParam, dataSource, @@ -94,7 +89,8 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa prepareVisualizationQueryDataResponse(author, authorDocuments, - yearToPublicationCount); + yearToPublicationCount, + response); return; } @@ -104,7 +100,8 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa prepareVisualizationQueryPDFResponse(author, authorDocuments, - yearToPublicationCount); + yearToPublicationCount, + response); return; } @@ -130,8 +127,6 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa * a page with visualization on it. * */ RequestDispatcher requestDispatcher = null; - HttpServletRequest request = super.getRequest(); - HttpServletResponse response = super.getResponse(); if (VisualizationFrameworkConstants.DYNAMIC_RENDER_MODE_URL_VALUE .equalsIgnoreCase(renderMode)) { @@ -157,7 +152,7 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa } catch (MalformedQueryParametersException e) { try { - handleMalformedParameters(e.getMessage()); + handleMalformedParameters(e.getMessage(), vitroRequest, request, response, log); } catch (ServletException e1) { log.error(e1.getStackTrace()); } catch (IOException e1) { @@ -171,7 +166,8 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa private void prepareVisualizationQueryPDFResponse( Individual author, List authorDocuments, - Map yearToPublicationCount) { + Map yearToPublicationCount, + HttpServletResponse response) { String authorName = null; @@ -191,7 +187,6 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa } String outputFileName = UtilityFunctions.slugify(authorName) + "_report" + ".pdf"; - HttpServletResponse response = super.getResponse(); response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName); @@ -233,7 +228,8 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa private void prepareVisualizationQueryDataResponse( Individual author, List authorDocuments, - Map yearToPublicationCount) { + Map yearToPublicationCount, + HttpServletResponse response) { String authorName = null; @@ -255,7 +251,6 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa String outputFileName = UtilityFunctions.slugify(authorName) + "_publications-per-year" + ".csv"; - HttpServletResponse response = super.getResponse(); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName); @@ -333,11 +328,14 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa } - private void handleMalformedParameters(String errorMessage) + private void handleMalformedParameters(String errorMessage, + VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log) throws ServletException, IOException { - Portal portal = super.getVitroRequest().getPortal(); - HttpServletRequest request = super.getRequest(); + Portal portal = vitroRequest.getPortal(); request.setAttribute("error", errorMessage); @@ -347,9 +345,8 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa request.setAttribute("title", "Visualization Query Error - Individual Publication Count"); try { - requestDispatcher.forward(request, super.getResponse()); + requestDispatcher.forward(request, response); } catch (Exception e) { - Log log = super.getLog(); log.error("EntityEditController could not forward to view."); log.error(e.getMessage()); log.error(e.getStackTrace()); diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java index 58e17857..e86203bd 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java @@ -36,18 +36,14 @@ import edu.cornell.mannlib.vitro.webapp.visualization.visutils.GenericQueryHandl import edu.cornell.mannlib.vitro.webapp.visualization.visutils.QueryHandler; import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler; -public class UtilitiesRequestHandler extends VisualizationRequestHandler { +public class UtilitiesRequestHandler implements VisualizationRequestHandler { - public UtilitiesRequestHandler(VitroRequest vitroRequest, - HttpServletRequest request, HttpServletResponse response, Log log) { + public void generateVisualization(VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log, + DataSource dataSource) { - super(vitroRequest, request, response, log); - - } - - public void generateVisualization(DataSource dataSource) { - - VitroRequest vitroRequest = super.getVitroRequest(); String individualURIParam = vitroRequest.getParameter( VisualizationFrameworkConstants .INDIVIDUAL_URI_URL_HANDLE); @@ -57,8 +53,6 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { String preparedURL = ""; - Log log = super.getLog(); - HttpServletRequest request = super.getRequest(); try { /* @@ -89,15 +83,16 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { Gson profileInformation = new Gson(); - prepareVisualizationQueryResponse(profileInformation - .toJson(profilePropertiesToValues)); + prepareVisualizationQueryResponse( + profileInformation.toJson(profilePropertiesToValues), + response); return; } catch (MalformedQueryParametersException e) { try { - handleMalformedParameters(e.getMessage()); + handleMalformedParameters(e.getMessage(), vitroRequest, request, response, log); } catch (ServletException e1) { log.error(e1.getStackTrace()); } catch (IOException e1) { @@ -140,13 +135,13 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { imageQueryHandler.getVisualizationJavaValueObjects(), fieldLabelToOutputFieldLabel); - prepareVisualizationQueryResponse(thumbnailAccessURL); + prepareVisualizationQueryResponse(thumbnailAccessURL, response); return; } catch (MalformedQueryParametersException e) { try { - handleMalformedParameters(e.getMessage()); + handleMalformedParameters(e.getMessage(), vitroRequest, request, response, log); } catch (ServletException e1) { log.error(e1.getStackTrace()); } catch (IOException e1) { @@ -181,7 +176,7 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { .toString(); - prepareVisualizationQueryResponse(preparedURL); + prepareVisualizationQueryResponse(preparedURL, response); return; } else if (VisualizationFrameworkConstants.PERSON_LEVEL_UTILS_VIS_MODE @@ -207,7 +202,7 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { .STANDALONE_RENDER_MODE_URL_VALUE, VisualizationController.URL_ENCODING_SCHEME).toString(); - prepareVisualizationQueryResponse(preparedURL); + prepareVisualizationQueryResponse(preparedURL, response); return; } else { @@ -219,7 +214,7 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { + "=" + URLEncoder.encode(individualURIParam, VisualizationController.URL_ENCODING_SCHEME).toString(); - prepareVisualizationQueryResponse(preparedURL); + prepareVisualizationQueryResponse(preparedURL, response); return; } @@ -256,13 +251,14 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { return finalThumbNailLocation; } - private void prepareVisualizationQueryResponse(String preparedURL) { + private void prepareVisualizationQueryResponse(String preparedURL, + HttpServletResponse response) { - super.getResponse().setContentType("text/plain"); + response.setContentType("text/plain"); try { - PrintWriter responseWriter = super.getResponse().getWriter(); + PrintWriter responseWriter = response.getWriter(); responseWriter.append(preparedURL); @@ -273,12 +269,15 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { } } - private void handleMalformedParameters(String errorMessage) + private void handleMalformedParameters(String errorMessage, + VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log) throws ServletException, IOException { - Portal portal = super.getVitroRequest().getPortal(); + Portal portal = vitroRequest.getPortal(); - HttpServletRequest request = super.getRequest(); request.setAttribute("error", errorMessage); RequestDispatcher requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP); @@ -287,9 +286,8 @@ public class UtilitiesRequestHandler extends VisualizationRequestHandler { request.setAttribute("title", "Visualization Query Error - Individual Publication Count"); try { - requestDispatcher.forward(request, super.getResponse()); + requestDispatcher.forward(request, response); } catch (Exception e) { - Log log = super.getLog(); log.error("EntityEditController could not forward to view."); log.error(e.getMessage()); log.error(e.getStackTrace()); diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/IVisRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/IVisRequestHandler.java new file mode 100644 index 00000000..484f59c5 --- /dev/null +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/IVisRequestHandler.java @@ -0,0 +1,6 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ +package edu.cornell.mannlib.vitro.webapp.visualization.visutils; + +public interface IVisRequestHandler { + public void doSomething(); +} diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java index 396bd350..18ffd8db 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java @@ -10,37 +10,12 @@ import com.hp.hpl.jena.query.DataSource; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -public abstract class VisualizationRequestHandler { +public interface VisualizationRequestHandler { - private VitroRequest vitroRequest; - private HttpServletRequest request; - private HttpServletResponse response; - private Log log; + void generateVisualization(VitroRequest vitroRequest, + HttpServletRequest request, + HttpServletResponse response, + Log log, + DataSource dataSource); - public VisualizationRequestHandler(VitroRequest vitroRequest, - HttpServletRequest request, HttpServletResponse response, Log log) { - this.vitroRequest = vitroRequest; - this.request = request; - this.response = response; - this.log = log; - } - - public abstract void generateVisualization(DataSource dataSource); - - public VitroRequest getVitroRequest() { - return vitroRequest; - } - - public HttpServletRequest getRequest() { - return request; - } - - public HttpServletResponse getResponse() { - return response; - } - - public Log getLog() { - return log; - } - }