1. Added constructs for handling visualization dependency injection into vis controller.

2. Refactored code.
This commit is contained in:
cdtank 2010-07-29 16:54:12 +00:00
parent c7bbb54d69
commit a6a29b7155
3 changed files with 109 additions and 100 deletions

View 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>

View file

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

View file

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