1. Refactored code to make it more amenable to dependency injection. Removed unnecessary state preservation from all the VisRequestHandlers.

This commit is contained in:
cdtank 2010-07-29 21:13:58 +00:00
parent 107eabbe14
commit e22b5d7d23
8 changed files with 153 additions and 184 deletions

View file

@ -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);

View file

@ -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());

View file

@ -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());

View file

@ -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());

View file

@ -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());

View file

@ -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());

View file

@ -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();
}

View file

@ -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);
}