1. Added constructs for handling visualization dependency injection into vis controller.
2. Refactored code.
This commit is contained in:
parent
c7bbb54d69
commit
a6a29b7155
3 changed files with 109 additions and 100 deletions
42
src/META-INF/visualizations-beans-injection.xml
Normal file
42
src/META-INF/visualizations-beans-injection.xml
Normal file
|
@ -0,0 +1,42 @@
|
|||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
|
||||
|
||||
|
||||
<bean id="person_pub_count" class="edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.PersonPublicationCountRequestHandler" />
|
||||
<bean id="college_pub_count" class="edu.cornell.mannlib.vitro.webapp.visualization.collegepubcount.CollegePublicationCountRequestHandler" />
|
||||
<bean id="coauthorship" class="edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.CoAuthorshipRequestHandler" />
|
||||
<bean id="person_level" class="edu.cornell.mannlib.vitro.webapp.visualization.personlevel.PersonLevelRequestHandler" />
|
||||
<bean id="utilities" class="edu.cornell.mannlib.vitro.webapp.visualization.utilities.UtilitiesRequestHandler" />
|
||||
|
||||
<bean id="visualizationInjector" class="edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationInjector">
|
||||
<property name="visualizations">
|
||||
<map>
|
||||
<entry key="person_pub_count">
|
||||
<ref bean="person_pub_count"></ref>
|
||||
</entry>
|
||||
<entry key="college_pub_count">
|
||||
<ref bean="college_pub_count"></ref>
|
||||
</entry>
|
||||
<entry key="coauthorship">
|
||||
<ref bean="coauthorship"></ref>
|
||||
</entry>
|
||||
<entry key="person_level">
|
||||
<ref bean="person_level"></ref>
|
||||
</entry>
|
||||
<entry key="utilities">
|
||||
<ref bean="utilities"></ref>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -31,6 +31,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletException;
|
||||
|
@ -40,6 +41,9 @@ import javax.servlet.http.HttpServletResponse;
|
|||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
|
||||
import com.hp.hpl.jena.query.DataSource;
|
||||
import com.hp.hpl.jena.query.DatasetFactory;
|
||||
|
@ -67,6 +71,8 @@ import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequ
|
|||
*/
|
||||
public class VisualizationController extends BaseEditController {
|
||||
|
||||
private Map<String, VisualizationRequestHandler> visualizationIDsToClass;
|
||||
|
||||
private static final String VIS_TYPE_URL_HANDLE = "vis";
|
||||
|
||||
public static final String URL_ENCODING_SCHEME = "UTF-8";
|
||||
|
@ -96,7 +102,20 @@ public class VisualizationController extends BaseEditController {
|
|||
public static final String UTILITIES_URL_VALUE
|
||||
= "utilities";
|
||||
|
||||
public VisualizationController() {
|
||||
super();
|
||||
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"META-INF/visualizations-beans-injection.xml");
|
||||
|
||||
BeanFactory factory = context;
|
||||
VisualizationInjector visualizationInjector = (VisualizationInjector) factory
|
||||
.getBean("visualizationInjector");
|
||||
|
||||
visualizationIDsToClass = visualizationInjector.getVisualizationIDToClass();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||
|
@ -114,128 +133,35 @@ public class VisualizationController extends BaseEditController {
|
|||
|
||||
String visTypeURLHandle = vreq.getParameter(VIS_TYPE_URL_HANDLE);
|
||||
|
||||
VisualizationRequestHandler visRequestHandler = null;
|
||||
|
||||
if (PERSON_PUBLICATION_COUNT_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
|
||||
|
||||
VisualizationRequestHandler visRequestHandler =
|
||||
visRequestHandler =
|
||||
new PersonPublicationCountRequestHandler(vreq, request, response, log);
|
||||
|
||||
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
||||
|
||||
DataSource dataSource = setupJENADataSource(request,
|
||||
response,
|
||||
vreq,
|
||||
rdfResultFormatParam);
|
||||
|
||||
if (dataSource != null) {
|
||||
|
||||
/*
|
||||
* This is side-effecting because the visualization content is added
|
||||
* to the request object.
|
||||
* */
|
||||
visRequestHandler.generateVisualization(dataSource);
|
||||
|
||||
} else {
|
||||
|
||||
log.error("ERROR! Data Model Empty");
|
||||
}
|
||||
|
||||
} else if (COLLEGE_PUBLICATION_COUNT_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
|
||||
|
||||
VisualizationRequestHandler visRequestHandler =
|
||||
visRequestHandler =
|
||||
new CollegePublicationCountRequestHandler(vreq, request, response, log);
|
||||
|
||||
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
||||
|
||||
DataSource dataSource = setupJENADataSource(request,
|
||||
response,
|
||||
vreq,
|
||||
rdfResultFormatParam);
|
||||
|
||||
if (dataSource != null) {
|
||||
|
||||
/*
|
||||
* This is side-effecting because the visualization content is added
|
||||
* to the request object.
|
||||
* */
|
||||
visRequestHandler.generateVisualization(dataSource);
|
||||
|
||||
} else {
|
||||
log.error("ERROR! data model empoty");
|
||||
}
|
||||
|
||||
} else if (COAUTHORSHIP_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
|
||||
|
||||
VisualizationRequestHandler visRequestHandler =
|
||||
visRequestHandler =
|
||||
new CoAuthorshipRequestHandler(vreq, request, response, log);
|
||||
|
||||
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
||||
|
||||
DataSource dataSource = setupJENADataSource(request,
|
||||
response,
|
||||
vreq,
|
||||
rdfResultFormatParam);
|
||||
|
||||
if (dataSource != null) {
|
||||
|
||||
/*
|
||||
* This is side-effecting because the visualization content is added
|
||||
* to the request object.
|
||||
* */
|
||||
visRequestHandler.generateVisualization(dataSource);
|
||||
|
||||
} else {
|
||||
log.error("ERROR! data model empoty");
|
||||
}
|
||||
|
||||
} else if (PERSON_LEVEL_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
|
||||
|
||||
VisualizationRequestHandler visRequestHandler =
|
||||
visRequestHandler =
|
||||
new PersonLevelRequestHandler(vreq, request, response, log);
|
||||
|
||||
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
||||
|
||||
DataSource dataSource = setupJENADataSource(request,
|
||||
response,
|
||||
vreq,
|
||||
rdfResultFormatParam);
|
||||
|
||||
if (dataSource != null) {
|
||||
|
||||
/*
|
||||
* This is side-effecting because the visualization content is added
|
||||
* to the request object.
|
||||
* */
|
||||
visRequestHandler.generateVisualization(dataSource);
|
||||
|
||||
} else {
|
||||
log.error("ERROR! data model empoty");
|
||||
}
|
||||
|
||||
} else if (UTILITIES_URL_VALUE
|
||||
.equalsIgnoreCase(visTypeURLHandle)) {
|
||||
|
||||
VisualizationRequestHandler visRequestHandler =
|
||||
visRequestHandler =
|
||||
new UtilitiesRequestHandler(vreq, request, response, log);
|
||||
|
||||
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
||||
|
||||
DataSource dataSource = setupJENADataSource(request,
|
||||
response,
|
||||
vreq,
|
||||
rdfResultFormatParam);
|
||||
|
||||
if (dataSource != null) {
|
||||
|
||||
/*
|
||||
* This is side-effecting because the visualization content is added
|
||||
* to the request object.
|
||||
* */
|
||||
visRequestHandler.generateVisualization(dataSource);
|
||||
|
||||
} else {
|
||||
log.error("ERROR! data model empoty");
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
log.debug("vis uqery parameter value -> " + vreq.getParameter("vis"));
|
||||
|
@ -251,6 +177,28 @@ public class VisualizationController extends BaseEditController {
|
|||
request,
|
||||
response);
|
||||
}
|
||||
|
||||
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
||||
|
||||
DataSource dataSource = setupJENADataSource(request,
|
||||
response,
|
||||
vreq,
|
||||
rdfResultFormatParam);
|
||||
|
||||
if (dataSource != null && visRequestHandler != null) {
|
||||
|
||||
/*
|
||||
* This is side-effecting because the visualization content is added
|
||||
* to the request object.
|
||||
* */
|
||||
visRequestHandler.generateVisualization(dataSource);
|
||||
|
||||
System.out.println(" VIS ID TO CLASS " + visualizationIDsToClass);
|
||||
|
||||
} else {
|
||||
|
||||
log.error("ERROR! Data Model Empty &/or inapproppriate vis request made");
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
package edu.cornell.mannlib.vitro.webapp.controller.visualization;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler;
|
||||
|
||||
public class VisualizationInjector {
|
||||
private Map<String, VisualizationRequestHandler> visualizationIDToClass;
|
||||
|
||||
public Map<String, VisualizationRequestHandler> getVisualizationIDToClass() {
|
||||
return visualizationIDToClass;
|
||||
}
|
||||
|
||||
public void setVisualizations(Map<String, VisualizationRequestHandler> visualizationIDToClass) {
|
||||
this.visualizationIDToClass = visualizationIDToClass;
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue