1. Refactored code to make it more amenable to dependency injection. Removed unnecessary state preservation from all the VisRequestHandlers.
This commit is contained in:
parent
107eabbe14
commit
e22b5d7d23
8 changed files with 153 additions and 184 deletions
|
@ -102,12 +102,17 @@ public class VisualizationController extends BaseEditController {
|
|||
public static final String UTILITIES_URL_VALUE
|
||||
= "utilities";
|
||||
|
||||
public VisualizationController() {
|
||||
super();
|
||||
|
||||
@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,9 +123,9 @@ public class VisualizationController extends BaseEditController {
|
|||
|
||||
} catch (Exception e) {
|
||||
|
||||
System.out.println(e.getMessage());
|
||||
e.printStackTrace();
|
||||
System.out.println(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 void generateVisualization(VitroRequest vitroRequest,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
Log log,
|
||||
DataSource dataSource) {
|
||||
|
||||
public CoAuthorshipRequestHandler(VitroRequest vitroRequest,
|
||||
HttpServletRequest request, HttpServletResponse response, Log log) {
|
||||
|
||||
super(vitroRequest, request, response, log);
|
||||
|
||||
}
|
||||
|
||||
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<CoAuthorshipVOContainer> 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<String, Set<Node>> yearToCoauthors = new TreeMap<String, Set<Node>>();
|
||||
|
@ -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());
|
||||
|
|
|
@ -46,18 +46,13 @@ 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(DataSource dataSource) {
|
||||
|
||||
ServletRequest vitroRequest = super.getVitroRequest();
|
||||
public void generateVisualization(VitroRequest vitroRequest,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
Log log,
|
||||
DataSource dataSource) {
|
||||
|
||||
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<Set<VivoEmployee>> queryManager =
|
||||
new CollegePublicationCountQueryHandler(collegeURIParam,
|
||||
dataSource,
|
||||
|
@ -120,7 +114,8 @@ public class CollegePublicationCountRequestHandler extends VisualizationRequestH
|
|||
if (VisualizationFrameworkConstants.DATA_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
|
||||
prepareVisualizationQueryDataResponse(
|
||||
departmentToPublicationsOverTime,
|
||||
((CollegePublicationCountQueryHandler) queryManager).getCollegeURLToVO());
|
||||
((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<BiboDocument> authorDocuments,
|
||||
Map<String, Integer> yearToPublicationCount) {
|
||||
Map<String, Integer> 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<VivoDepartmentOrDivision, Map<String, Integer>> departmentToPublicationsOverTime,
|
||||
Map<String, VivoCollegeOrSchool> collegeURLToVO) {
|
||||
Map<String, VivoCollegeOrSchool> 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());
|
||||
|
|
|
@ -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<CoAuthorshipVOContainer>
|
||||
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<String, Integer> coAuthorsToCount = new TreeMap<String, Integer>();
|
||||
|
@ -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());
|
||||
|
|
|
@ -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) {
|
||||
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);
|
||||
|
@ -65,7 +61,6 @@ public class PersonPublicationCountRequestHandler extends VisualizationRequestHa
|
|||
VisualizationFrameworkConstants
|
||||
.VIS_CONTAINER_URL_HANDLE);
|
||||
|
||||
Log log = super.getLog();
|
||||
QueryHandler<List<BiboDocument>> 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<BiboDocument> authorDocuments,
|
||||
Map<String, Integer> yearToPublicationCount) {
|
||||
Map<String, Integer> 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<BiboDocument> authorDocuments,
|
||||
Map<String, Integer> yearToPublicationCount) {
|
||||
Map<String, Integer> 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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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();
|
||||
}
|
|
@ -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;
|
||||
|
||||
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;
|
||||
}
|
||||
void generateVisualization(VitroRequest vitroRequest,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
Log log,
|
||||
DataSource dataSource);
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue