1. refactored code in preparation for adding code structure for map of science vis
This commit is contained in:
parent
1e0c2195e1
commit
1e82115d64
10 changed files with 481 additions and 49 deletions
|
@ -0,0 +1,26 @@
|
||||||
|
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
|
||||||
|
|
||||||
|
<#assign standardVisualizationURLRoot ="/visualization">
|
||||||
|
<#assign ajaxVisualizationURLRoot ="/visualizationAjax">
|
||||||
|
<#assign dataVisualizationURLRoot ="/visualizationData">
|
||||||
|
<#assign shortVisualizationURLRoot ="/vis">
|
||||||
|
|
||||||
|
<#assign organizationURI ="${organizationURI?url}">
|
||||||
|
<#assign organizationVivoProfileURL = "${urls.base}/individual?uri=${organizationURI}">
|
||||||
|
|
||||||
|
<#assign subOrganizationVivoProfileURL = "${urls.base}/individual?">
|
||||||
|
|
||||||
|
<#assign subOrganizationMapOfScienceCommonURL = "${urls.base}${shortVisualizationURLRoot}/map-of-science/">
|
||||||
|
|
||||||
|
|
||||||
|
<#if organizationLocalName?has_content >
|
||||||
|
|
||||||
|
<#assign organizationMapOfScienceURL = "${urls.base}${shortVisualizationURLRoot}/map-of-science/${organizationLocalName}">
|
||||||
|
|
||||||
|
<#else>
|
||||||
|
|
||||||
|
<#assign organizationMapOfScienceURL = '${urls.base}${shortVisualizationURLRoot}/map-of-science/?uri=${organizationURI}'>
|
||||||
|
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
<#assign organizationMapOfScienceDataURL = "${urls.base}${dataVisualizationURLRoot}?vis=map-of-science&uri=${organizationURI}&vis_mode=json">
|
|
@ -0,0 +1,38 @@
|
||||||
|
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
|
||||||
|
|
||||||
|
<#-- The Order of each element in this file is very important. Do not make any changes to it unless making
|
||||||
|
corresponding changes in the included Templates. -->
|
||||||
|
|
||||||
|
|
||||||
|
<#include "scienceMapSetup.ftl">
|
||||||
|
|
||||||
|
<script language="JavaScript" type="text/javascript">
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
|
||||||
|
var scienceMapDataURL = "${organizationMapOfScienceDataURL}";
|
||||||
|
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: scienceMapDataURL
|
||||||
|
dataType: "json",
|
||||||
|
timeout: 5 * 60 * 1000,
|
||||||
|
success: function (data) {
|
||||||
|
|
||||||
|
if (data.error) {
|
||||||
|
|
||||||
|
alert("error");
|
||||||
|
alert(data);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
alert("success");
|
||||||
|
alert(data);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
|
@ -14,4 +14,8 @@ public class VisConstants {
|
||||||
public static final String RESULT_FORMAT_PARAM = "RS_TEXT";
|
public static final String RESULT_FORMAT_PARAM = "RS_TEXT";
|
||||||
public static final String RDF_RESULT_FORMAT_PARAM = "RDF/XML-ABBREV";
|
public static final String RDF_RESULT_FORMAT_PARAM = "RDF/XML-ABBREV";
|
||||||
|
|
||||||
|
public static enum DataVisMode {
|
||||||
|
CSV, JSON
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class EntityPublicationCountRequestHandler implements
|
||||||
|
|
||||||
if (StringUtils.isBlank(entityURI)) {
|
if (StringUtils.isBlank(entityURI)) {
|
||||||
|
|
||||||
entityURI = EntityComparisonUtilityFunctions
|
entityURI = OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
|
@ -120,7 +120,7 @@ public class EntityPublicationCountRequestHandler implements
|
||||||
throws MalformedQueryParametersException {
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
Map<String, Set<String>> subOrganizationTypesResult =
|
Map<String, Set<String>> subOrganizationTypesResult =
|
||||||
EntityComparisonUtilityFunctions.getSubEntityTypes(
|
OrganizationUtilityFunctions.getSubEntityTypes(
|
||||||
log, dataset, subjectEntityURI);
|
log, dataset, subjectEntityURI);
|
||||||
|
|
||||||
return prepareStandaloneDataResponse(vitroRequest, entity, entity.getSubEntities(),
|
return prepareStandaloneDataResponse(vitroRequest, entity, entity.getSubEntities(),
|
||||||
|
@ -155,7 +155,7 @@ public class EntityPublicationCountRequestHandler implements
|
||||||
vitroRequest,
|
vitroRequest,
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
EntityComparisonUtilityFunctions
|
OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
|
@ -178,7 +178,7 @@ public class EntityPublicationCountRequestHandler implements
|
||||||
Entity entity = queryManager.getQueryResult();
|
Entity entity = queryManager.getQueryResult();
|
||||||
|
|
||||||
Map<String, Set<String>> subOrganizationTypesResult =
|
Map<String, Set<String>> subOrganizationTypesResult =
|
||||||
EntityComparisonUtilityFunctions.getSubEntityTypes(
|
OrganizationUtilityFunctions.getSubEntityTypes(
|
||||||
log, dataset, entityURI);
|
log, dataset, entityURI);
|
||||||
|
|
||||||
return prepareDataResponse(entity, entity.getSubEntities(), subOrganizationTypesResult);
|
return prepareDataResponse(entity, entity.getSubEntities(), subOrganizationTypesResult);
|
||||||
|
@ -251,7 +251,7 @@ public class EntityPublicationCountRequestHandler implements
|
||||||
|
|
||||||
String standaloneTemplate = "entityComparisonOnPublicationsStandalone.ftl";
|
String standaloneTemplate = "entityComparisonOnPublicationsStandalone.ftl";
|
||||||
|
|
||||||
String organizationLabel = EntityComparisonUtilityFunctions
|
String organizationLabel = OrganizationUtilityFunctions
|
||||||
.getEntityLabelFromDAO(vreq,
|
.getEntityLabelFromDAO(vreq,
|
||||||
entityURI);
|
entityURI);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.Generi
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.ModelConstructor;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.ModelConstructor;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.QueryRunner;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.QueryRunner;
|
||||||
|
|
||||||
public class EntityComparisonUtilityFunctions {
|
public class OrganizationUtilityFunctions {
|
||||||
|
|
||||||
public static String getHighestLevelOrganizationURI(ResultSet resultSet,
|
public static String getHighestLevelOrganizationURI(ResultSet resultSet,
|
||||||
Map<String, String> fieldLabelToOutputFieldLabel) {
|
Map<String, String> fieldLabelToOutputFieldLabel) {
|
||||||
|
@ -94,7 +94,7 @@ public class EntityComparisonUtilityFunctions {
|
||||||
fieldLabelToOutputFieldLabel, aggregationRules, whereClause,
|
fieldLabelToOutputFieldLabel, aggregationRules, whereClause,
|
||||||
groupOrderClause, dataset, log);
|
groupOrderClause, dataset, log);
|
||||||
|
|
||||||
String highestLevelOrgURI = EntityComparisonUtilityFunctions
|
String highestLevelOrgURI = OrganizationUtilityFunctions
|
||||||
.getHighestLevelOrganizationURI(
|
.getHighestLevelOrganizationURI(
|
||||||
highestLevelOrganizationQueryHandler.getQueryResult(),
|
highestLevelOrganizationQueryHandler.getQueryResult(),
|
||||||
fieldLabelToOutputFieldLabel);
|
fieldLabelToOutputFieldLabel);
|
||||||
|
@ -165,7 +165,7 @@ public class EntityComparisonUtilityFunctions {
|
||||||
/*
|
/*
|
||||||
* If the provided value was not proper compute it yourself.
|
* If the provided value was not proper compute it yourself.
|
||||||
* */
|
* */
|
||||||
return EntityComparisonUtilityFunctions.getHighestLevelOrganizationURI(log, dataset);
|
return OrganizationUtilityFunctions.getHighestLevelOrganizationURI(log, dataset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Entity mergeEntityIfShareSameURI(Entity entityA, Entity entityB) {
|
public static Entity mergeEntityIfShareSameURI(Entity entityA, Entity entityB) {
|
|
@ -1,11 +0,0 @@
|
||||||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.cached;
|
|
||||||
|
|
||||||
public class EntityComparisonConstants {
|
|
||||||
|
|
||||||
public static enum DataVisMode {
|
|
||||||
CSV, JSON
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -22,8 +22,9 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.Tem
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.EntityComparisonUtilityFunctions;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.OrganizationUtilityFunctions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Activity;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Activity;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Entity;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Entity;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.JsonObject;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.JsonObject;
|
||||||
|
@ -55,7 +56,7 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
String entityURI) throws MalformedQueryParametersException {
|
String entityURI) throws MalformedQueryParametersException {
|
||||||
if (StringUtils.isBlank(entityURI)) {
|
if (StringUtils.isBlank(entityURI)) {
|
||||||
|
|
||||||
entityURI = EntityComparisonUtilityFunctions
|
entityURI = OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
|
@ -105,19 +106,19 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
entityURI,
|
entityURI,
|
||||||
EntityComparisonConstants.DataVisMode.JSON);
|
VisConstants.DataVisMode.JSON);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
return getSubjectEntityAndGenerateDataResponse(
|
return getSubjectEntityAndGenerateDataResponse(
|
||||||
vitroRequest,
|
vitroRequest,
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
EntityComparisonUtilityFunctions
|
OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
vitroRequest),
|
vitroRequest),
|
||||||
EntityComparisonConstants.DataVisMode.JSON);
|
VisConstants.DataVisMode.JSON);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -129,7 +130,7 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
entityURI,
|
entityURI,
|
||||||
EntityComparisonConstants.DataVisMode.CSV);
|
VisConstants.DataVisMode.CSV);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +158,7 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
|
|
||||||
private Map<String, String> getSubjectEntityAndGenerateDataResponse(
|
private Map<String, String> getSubjectEntityAndGenerateDataResponse(
|
||||||
VitroRequest vitroRequest, Log log, Dataset dataset,
|
VitroRequest vitroRequest, Log log, Dataset dataset,
|
||||||
String subjectEntityURI, EntityComparisonConstants.DataVisMode visMode)
|
String subjectEntityURI, VisConstants.DataVisMode visMode)
|
||||||
throws MalformedQueryParametersException {
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
Entity organizationEntity = SelectOnModelUtilities
|
Entity organizationEntity = SelectOnModelUtilities
|
||||||
|
@ -165,7 +166,7 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
|
|
||||||
if (organizationEntity.getSubEntities() == null) {
|
if (organizationEntity.getSubEntities() == null) {
|
||||||
|
|
||||||
if (EntityComparisonConstants.DataVisMode.JSON.equals(visMode)) {
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
return prepareStandaloneDataErrorResponse();
|
return prepareStandaloneDataErrorResponse();
|
||||||
} else {
|
} else {
|
||||||
return prepareDataErrorResponse();
|
return prepareDataErrorResponse();
|
||||||
|
@ -194,14 +195,14 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
grantURIForAssociatedPeopleToVO = SelectOnModelUtilities
|
grantURIForAssociatedPeopleToVO = SelectOnModelUtilities
|
||||||
.getGrantsForAssociatedPeople(dataset, organizationWithAssociatedPeople.getSubEntities());
|
.getGrantsForAssociatedPeople(dataset, organizationWithAssociatedPeople.getSubEntities());
|
||||||
|
|
||||||
organizationEntity = EntityComparisonUtilityFunctions.mergeEntityIfShareSameURI(
|
organizationEntity = OrganizationUtilityFunctions.mergeEntityIfShareSameURI(
|
||||||
organizationEntity,
|
organizationEntity,
|
||||||
organizationWithAssociatedPeople);
|
organizationWithAssociatedPeople);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (allGrantURIToVO.isEmpty() && grantURIForAssociatedPeopleToVO.isEmpty()) {
|
if (allGrantURIToVO.isEmpty() && grantURIForAssociatedPeopleToVO.isEmpty()) {
|
||||||
|
|
||||||
if (EntityComparisonConstants.DataVisMode.JSON.equals(visMode)) {
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
return prepareStandaloneDataErrorResponse();
|
return prepareStandaloneDataErrorResponse();
|
||||||
} else {
|
} else {
|
||||||
return prepareDataErrorResponse();
|
return prepareDataErrorResponse();
|
||||||
|
@ -209,7 +210,7 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (EntityComparisonConstants.DataVisMode.JSON.equals(visMode)) {
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
return prepareStandaloneDataResponse(vitroRequest, organizationEntity);
|
return prepareStandaloneDataResponse(vitroRequest, organizationEntity);
|
||||||
} else {
|
} else {
|
||||||
return prepareDataResponse(organizationEntity);
|
return prepareDataResponse(organizationEntity);
|
||||||
|
@ -283,7 +284,7 @@ public class TemporalGrantVisualizationRequestHandler implements
|
||||||
|
|
||||||
String standaloneTemplate = "entityComparisonOnGrantsStandalone.ftl";
|
String standaloneTemplate = "entityComparisonOnGrantsStandalone.ftl";
|
||||||
|
|
||||||
String organizationLabel = EntityComparisonUtilityFunctions.getEntityLabelFromDAO(vreq,
|
String organizationLabel = OrganizationUtilityFunctions.getEntityLabelFromDAO(vreq,
|
||||||
entityURI);
|
entityURI);
|
||||||
|
|
||||||
Map<String, Object> body = new HashMap<String, Object>();
|
Map<String, Object> body = new HashMap<String, Object>();
|
||||||
|
|
|
@ -22,8 +22,9 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.Tem
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.EntityComparisonUtilityFunctions;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.OrganizationUtilityFunctions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Activity;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Activity;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Entity;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Entity;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.JsonObject;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.JsonObject;
|
||||||
|
@ -66,7 +67,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
|
|
||||||
if (StringUtils.isBlank(entityURI)) {
|
if (StringUtils.isBlank(entityURI)) {
|
||||||
|
|
||||||
entityURI = EntityComparisonUtilityFunctions
|
entityURI = OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
|
@ -85,7 +86,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
|
|
||||||
private Map<String, String> getSubjectEntityAndGenerateDataResponse(
|
private Map<String, String> getSubjectEntityAndGenerateDataResponse(
|
||||||
VitroRequest vitroRequest, Log log, Dataset dataset,
|
VitroRequest vitroRequest, Log log, Dataset dataset,
|
||||||
String subjectEntityURI, EntityComparisonConstants.DataVisMode visMode)
|
String subjectEntityURI, VisConstants.DataVisMode visMode)
|
||||||
throws MalformedQueryParametersException {
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
Entity organizationEntity = SelectOnModelUtilities
|
Entity organizationEntity = SelectOnModelUtilities
|
||||||
|
@ -93,7 +94,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
|
|
||||||
if (organizationEntity.getSubEntities() == null) {
|
if (organizationEntity.getSubEntities() == null) {
|
||||||
|
|
||||||
if (EntityComparisonConstants.DataVisMode.JSON.equals(visMode)) {
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
return prepareStandaloneDataErrorResponse();
|
return prepareStandaloneDataErrorResponse();
|
||||||
} else {
|
} else {
|
||||||
return prepareDataErrorResponse();
|
return prepareDataErrorResponse();
|
||||||
|
@ -113,14 +114,14 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
documentURIForAssociatedPeopleTOVO = SelectOnModelUtilities
|
documentURIForAssociatedPeopleTOVO = SelectOnModelUtilities
|
||||||
.getPublicationsForAssociatedPeople(dataset, organizationWithAssociatedPeople.getSubEntities());
|
.getPublicationsForAssociatedPeople(dataset, organizationWithAssociatedPeople.getSubEntities());
|
||||||
|
|
||||||
organizationEntity = EntityComparisonUtilityFunctions.mergeEntityIfShareSameURI(
|
organizationEntity = OrganizationUtilityFunctions.mergeEntityIfShareSameURI(
|
||||||
organizationEntity,
|
organizationEntity,
|
||||||
organizationWithAssociatedPeople);
|
organizationWithAssociatedPeople);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (allDocumentURIToVOs.isEmpty() && documentURIForAssociatedPeopleTOVO.isEmpty()) {
|
if (allDocumentURIToVOs.isEmpty() && documentURIForAssociatedPeopleTOVO.isEmpty()) {
|
||||||
|
|
||||||
if (EntityComparisonConstants.DataVisMode.JSON.equals(visMode)) {
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
return prepareStandaloneDataErrorResponse();
|
return prepareStandaloneDataErrorResponse();
|
||||||
} else {
|
} else {
|
||||||
return prepareDataErrorResponse();
|
return prepareDataErrorResponse();
|
||||||
|
@ -128,7 +129,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (EntityComparisonConstants.DataVisMode.JSON.equals(visMode)) {
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
return prepareStandaloneDataResponse(vitroRequest, organizationEntity);
|
return prepareStandaloneDataResponse(vitroRequest, organizationEntity);
|
||||||
} else {
|
} else {
|
||||||
return prepareDataResponse(organizationEntity);
|
return prepareDataResponse(organizationEntity);
|
||||||
|
@ -217,19 +218,19 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
entityURI,
|
entityURI,
|
||||||
EntityComparisonConstants.DataVisMode.JSON);
|
VisConstants.DataVisMode.JSON);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
return getSubjectEntityAndGenerateDataResponse(
|
return getSubjectEntityAndGenerateDataResponse(
|
||||||
vitroRequest,
|
vitroRequest,
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
EntityComparisonUtilityFunctions
|
OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
vitroRequest),
|
vitroRequest),
|
||||||
EntityComparisonConstants.DataVisMode.JSON);
|
VisConstants.DataVisMode.JSON);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -242,7 +243,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
entityURI,
|
entityURI,
|
||||||
EntityComparisonConstants.DataVisMode.CSV);
|
VisConstants.DataVisMode.CSV);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,7 +275,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
|
||||||
|
|
||||||
String standaloneTemplate = "entityComparisonOnPublicationsStandalone.ftl";
|
String standaloneTemplate = "entityComparisonOnPublicationsStandalone.ftl";
|
||||||
|
|
||||||
String organizationLabel = EntityComparisonUtilityFunctions
|
String organizationLabel = OrganizationUtilityFunctions
|
||||||
.getEntityLabelFromDAO(vreq,
|
.getEntityLabelFromDAO(vreq,
|
||||||
entityURI);
|
entityURI);
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.Data
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.EntityComparisonUtilityFunctions;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.OrganizationUtilityFunctions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Entity;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Entity;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.JsonObject;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.JsonObject;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.SubEntity;
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.SubEntity;
|
||||||
|
@ -54,7 +54,7 @@ public class EntityGrantCountRequestHandler implements
|
||||||
String entityURI) throws MalformedQueryParametersException {
|
String entityURI) throws MalformedQueryParametersException {
|
||||||
if (StringUtils.isBlank(entityURI)) {
|
if (StringUtils.isBlank(entityURI)) {
|
||||||
|
|
||||||
entityURI = EntityComparisonUtilityFunctions
|
entityURI = OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
|
@ -102,7 +102,7 @@ public class EntityGrantCountRequestHandler implements
|
||||||
vitroRequest,
|
vitroRequest,
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
EntityComparisonUtilityFunctions
|
OrganizationUtilityFunctions
|
||||||
.getStaffProvidedOrComputedHighestLevelOrganization(
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
log,
|
log,
|
||||||
dataset,
|
dataset,
|
||||||
|
@ -125,7 +125,7 @@ public class EntityGrantCountRequestHandler implements
|
||||||
|
|
||||||
|
|
||||||
Map<String, Set<String>> subOrganizationTypesResult =
|
Map<String, Set<String>> subOrganizationTypesResult =
|
||||||
EntityComparisonUtilityFunctions.getSubEntityTypes(
|
OrganizationUtilityFunctions.getSubEntityTypes(
|
||||||
log, dataset, entityURI);
|
log, dataset, entityURI);
|
||||||
|
|
||||||
return prepareDataResponse(entity, entity.getSubEntities(), subOrganizationTypesResult);
|
return prepareDataResponse(entity, entity.getSubEntities(), subOrganizationTypesResult);
|
||||||
|
@ -173,7 +173,7 @@ public class EntityGrantCountRequestHandler implements
|
||||||
throws MalformedQueryParametersException {
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
Map<String, Set<String>> subOrganizationTypesResult =
|
Map<String, Set<String>> subOrganizationTypesResult =
|
||||||
EntityComparisonUtilityFunctions.getSubEntityTypes(
|
OrganizationUtilityFunctions.getSubEntityTypes(
|
||||||
log, dataset, subjectOrganization);
|
log, dataset, subjectOrganization);
|
||||||
|
|
||||||
return prepareStandaloneDataResponse(vitroRequest, entity, subOrganizationTypesResult);
|
return prepareStandaloneDataResponse(vitroRequest, entity, subOrganizationTypesResult);
|
||||||
|
@ -250,7 +250,7 @@ public class EntityGrantCountRequestHandler implements
|
||||||
|
|
||||||
String standaloneTemplate = "entityComparisonOnGrantsStandalone.ftl";
|
String standaloneTemplate = "entityComparisonOnGrantsStandalone.ftl";
|
||||||
|
|
||||||
String organizationLabel = EntityComparisonUtilityFunctions.getEntityLabelFromDAO(vreq,
|
String organizationLabel = OrganizationUtilityFunctions.getEntityLabelFromDAO(vreq,
|
||||||
entityURI);
|
entityURI);
|
||||||
|
|
||||||
Map<String, Object> body = new HashMap<String, Object>();
|
Map<String, Object> body = new HashMap<String, Object>();
|
||||||
|
|
|
@ -0,0 +1,373 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.visualization.freemarker.mapofscience;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringEscapeUtils;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.hp.hpl.jena.query.Dataset;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.OrganizationUtilityFunctions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Activity;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.Entity;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.JsonObject;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.SubEntity;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.SubjectEntityJSON;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.SelectOnModelUtilities;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.UtilityFunctions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.VisualizationRequestHandler;
|
||||||
|
|
||||||
|
public class MapOfScienceVisualizationRequestHandler implements
|
||||||
|
VisualizationRequestHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResponseValues generateStandardVisualization(
|
||||||
|
VitroRequest vitroRequest, Log log, Dataset dataset)
|
||||||
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
|
|
||||||
|
String entityURI = vitroRequest
|
||||||
|
.getParameter(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY);
|
||||||
|
|
||||||
|
return generateStandardVisualizationForScienceMapVis(
|
||||||
|
vitroRequest, log, dataset, entityURI);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResponseValues generateVisualizationForShortURLRequests(
|
||||||
|
Map<String, String> parameters, VitroRequest vitroRequest, Log log,
|
||||||
|
Dataset dataset) throws MalformedQueryParametersException {
|
||||||
|
|
||||||
|
|
||||||
|
return generateStandardVisualizationForScienceMapVis(
|
||||||
|
vitroRequest, log, dataset, parameters.get(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private ResponseValues generateStandardVisualizationForScienceMapVis(
|
||||||
|
VitroRequest vitroRequest, Log log, Dataset dataset,
|
||||||
|
String entityURI) throws MalformedQueryParametersException {
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(entityURI)) {
|
||||||
|
|
||||||
|
entityURI = OrganizationUtilityFunctions
|
||||||
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
|
log,
|
||||||
|
dataset,
|
||||||
|
vitroRequest);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// System.out.println("current models in the system are");
|
||||||
|
// for (Map.Entry<String, Model> entry : ConstructedModelTracker.getAllModels().entrySet()) {
|
||||||
|
// System.out.println(entry.getKey() + " -> " + entry.getValue().size());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
return prepareStandaloneMarkupResponse(vitroRequest, entityURI);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> getSubjectEntityAndGenerateDataResponse(
|
||||||
|
VitroRequest vitroRequest, Log log, Dataset dataset,
|
||||||
|
String subjectEntityURI, VisConstants.DataVisMode visMode)
|
||||||
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
|
Entity organizationEntity = SelectOnModelUtilities
|
||||||
|
.getSubjectOrganizationHierarchy(dataset, subjectEntityURI);
|
||||||
|
|
||||||
|
if (organizationEntity.getSubEntities() == null) {
|
||||||
|
|
||||||
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
|
return prepareStandaloneDataErrorResponse();
|
||||||
|
} else {
|
||||||
|
return prepareDataErrorResponse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Activity> documentURIForAssociatedPeopleTOVO = new HashMap<String, Activity>();
|
||||||
|
Map<String, Activity> allDocumentURIToVOs = new HashMap<String, Activity>();
|
||||||
|
|
||||||
|
allDocumentURIToVOs = SelectOnModelUtilities.getPublicationsForAllSubOrganizations(dataset, organizationEntity);
|
||||||
|
|
||||||
|
Entity organizationWithAssociatedPeople = SelectOnModelUtilities
|
||||||
|
.getSubjectOrganizationAssociatedPeople(dataset, subjectEntityURI);
|
||||||
|
|
||||||
|
if (organizationWithAssociatedPeople.getSubEntities() != null) {
|
||||||
|
|
||||||
|
documentURIForAssociatedPeopleTOVO = SelectOnModelUtilities
|
||||||
|
.getPublicationsForAssociatedPeople(dataset, organizationWithAssociatedPeople.getSubEntities());
|
||||||
|
|
||||||
|
organizationEntity = OrganizationUtilityFunctions.mergeEntityIfShareSameURI(
|
||||||
|
organizationEntity,
|
||||||
|
organizationWithAssociatedPeople);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allDocumentURIToVOs.isEmpty() && documentURIForAssociatedPeopleTOVO.isEmpty()) {
|
||||||
|
|
||||||
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
|
return prepareStandaloneDataErrorResponse();
|
||||||
|
} else {
|
||||||
|
return prepareDataErrorResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
|
||||||
|
return prepareStandaloneDataResponse(vitroRequest, organizationEntity);
|
||||||
|
} else {
|
||||||
|
return prepareDataResponse(organizationEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides response when json file containing the publication count over the
|
||||||
|
* years is requested.
|
||||||
|
*
|
||||||
|
* @param entity
|
||||||
|
* @param subentities
|
||||||
|
* @param subOrganizationTypesResult
|
||||||
|
*/
|
||||||
|
private Map<String, String> prepareDataResponse(Entity entity) {
|
||||||
|
|
||||||
|
String entityLabel = entity.getEntityLabel();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To make sure that null/empty records for entity names do not cause any mischief.
|
||||||
|
* */
|
||||||
|
if (StringUtils.isBlank(entityLabel)) {
|
||||||
|
entityLabel = "no-organization";
|
||||||
|
}
|
||||||
|
|
||||||
|
String outputFileName = UtilityFunctions.slugify(entityLabel)
|
||||||
|
+ "_publications-per-year" + ".csv";
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, String> fileData = new HashMap<String, String>();
|
||||||
|
|
||||||
|
fileData.put(DataVisualizationController.FILE_NAME_KEY,
|
||||||
|
outputFileName);
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
|
||||||
|
"application/octet-stream");
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_KEY,
|
||||||
|
getEntityPublicationsPerYearCSVContent(entity));
|
||||||
|
return fileData;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> prepareDataErrorResponse() {
|
||||||
|
|
||||||
|
String outputFileName = "no-organization_publications-per-year.csv";
|
||||||
|
|
||||||
|
Map<String, String> fileData = new HashMap<String, String>();
|
||||||
|
|
||||||
|
fileData.put(DataVisualizationController.FILE_NAME_KEY,
|
||||||
|
outputFileName);
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
|
||||||
|
"application/octet-stream");
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_KEY, "");
|
||||||
|
return fileData;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> prepareStandaloneDataErrorResponse() {
|
||||||
|
|
||||||
|
Map<String, String> fileData = new HashMap<String, String>();
|
||||||
|
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
|
||||||
|
"application/octet-stream");
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_KEY,
|
||||||
|
"{\"error\" : \"No Publications for this Organization found in VIVO.\"}");
|
||||||
|
return fileData;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, String> generateDataVisualization(
|
||||||
|
VitroRequest vitroRequest, Log log, Dataset dataset)
|
||||||
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
|
String entityURI = vitroRequest
|
||||||
|
.getParameter(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This will provide the data in json format mainly used for standalone tmeporal vis.
|
||||||
|
* */
|
||||||
|
if (VisualizationFrameworkConstants.TEMPORAL_GRAPH_JSON_DATA_VIS_MODE
|
||||||
|
.equalsIgnoreCase(vitroRequest.getParameter(
|
||||||
|
VisualizationFrameworkConstants.VIS_MODE_KEY))) {
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(entityURI)) {
|
||||||
|
|
||||||
|
return getSubjectEntityAndGenerateDataResponse(
|
||||||
|
vitroRequest,
|
||||||
|
log,
|
||||||
|
dataset,
|
||||||
|
entityURI,
|
||||||
|
VisConstants.DataVisMode.JSON);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
return getSubjectEntityAndGenerateDataResponse(
|
||||||
|
vitroRequest,
|
||||||
|
log,
|
||||||
|
dataset,
|
||||||
|
OrganizationUtilityFunctions
|
||||||
|
.getStaffProvidedOrComputedHighestLevelOrganization(
|
||||||
|
log,
|
||||||
|
dataset,
|
||||||
|
vitroRequest),
|
||||||
|
VisConstants.DataVisMode.JSON);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* This provides csv download files for the content in the tables.
|
||||||
|
* */
|
||||||
|
|
||||||
|
return getSubjectEntityAndGenerateDataResponse(
|
||||||
|
vitroRequest,
|
||||||
|
log,
|
||||||
|
dataset,
|
||||||
|
entityURI,
|
||||||
|
VisConstants.DataVisMode.CSV);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log,
|
||||||
|
Dataset dataset) throws MalformedQueryParametersException {
|
||||||
|
throw new UnsupportedOperationException("Entity Pub Count does not provide Ajax Response.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> prepareStandaloneDataResponse(
|
||||||
|
VitroRequest vitroRequest,
|
||||||
|
Entity entity) {
|
||||||
|
|
||||||
|
Map<String, String> fileData = new HashMap<String, String>();
|
||||||
|
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
|
||||||
|
"application/octet-stream");
|
||||||
|
fileData.put(DataVisualizationController.FILE_CONTENT_KEY,
|
||||||
|
writePublicationsOverTimeJSON(vitroRequest,
|
||||||
|
entity));
|
||||||
|
return fileData;
|
||||||
|
}
|
||||||
|
|
||||||
|
private TemplateResponseValues prepareStandaloneMarkupResponse(VitroRequest vreq,
|
||||||
|
String entityURI) {
|
||||||
|
|
||||||
|
String standaloneTemplate = "mapOfScienceStandalone.ftl";
|
||||||
|
|
||||||
|
String organizationLabel = OrganizationUtilityFunctions
|
||||||
|
.getEntityLabelFromDAO(vreq,
|
||||||
|
entityURI);
|
||||||
|
|
||||||
|
Map<String, Object> body = new HashMap<String, Object>();
|
||||||
|
body.put("title", organizationLabel + " - Map of Science Visualization");
|
||||||
|
body.put("organizationURI", entityURI);
|
||||||
|
body.put("organizationLocalName", UtilityFunctions.getIndividualLocalName(entityURI, vreq));
|
||||||
|
body.put("vivoDefaultNamespace", vreq.getWebappDaoFactory().getDefaultNamespace());
|
||||||
|
body.put("organizationLabel", organizationLabel);
|
||||||
|
|
||||||
|
return new TemplateResponseValues(standaloneTemplate, body);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function to generate a json file for year <-> publication count mapping.
|
||||||
|
* @param vreq
|
||||||
|
* @param subentities
|
||||||
|
* @param subOrganizationTypesResult
|
||||||
|
*/
|
||||||
|
private String writePublicationsOverTimeJSON(VitroRequest vreq,
|
||||||
|
Entity subjectEntity) {
|
||||||
|
|
||||||
|
Gson json = new Gson();
|
||||||
|
Set subEntitiesJson = new HashSet();
|
||||||
|
|
||||||
|
for (SubEntity subentity : subjectEntity.getSubEntities()) {
|
||||||
|
|
||||||
|
JsonObject entityJson = new JsonObject(
|
||||||
|
subentity.getIndividualLabel());
|
||||||
|
|
||||||
|
List<List<Integer>> yearPubCount = new ArrayList<List<Integer>>();
|
||||||
|
|
||||||
|
for (Map.Entry<String, Integer> pubEntry : UtilityFunctions
|
||||||
|
.getYearToActivityCount(subentity.getActivities())
|
||||||
|
.entrySet()) {
|
||||||
|
|
||||||
|
List<Integer> currentPubYear = new ArrayList<Integer>();
|
||||||
|
if (pubEntry.getKey().equals(VOConstants.DEFAULT_PUBLICATION_YEAR)) {
|
||||||
|
currentPubYear.add(-1);
|
||||||
|
} else {
|
||||||
|
currentPubYear.add(Integer.parseInt(pubEntry.getKey()));
|
||||||
|
}
|
||||||
|
|
||||||
|
currentPubYear.add(pubEntry.getValue());
|
||||||
|
yearPubCount.add(currentPubYear);
|
||||||
|
}
|
||||||
|
|
||||||
|
entityJson.setYearToActivityCount(yearPubCount);
|
||||||
|
|
||||||
|
entityJson.setOrganizationTypes(subentity.getEntityTypeLabels());
|
||||||
|
|
||||||
|
entityJson.setEntityURI(subentity.getIndividualURI());
|
||||||
|
|
||||||
|
entityJson.setLastCachedAtDateTime(subentity.getLastCachedAtDateTime());
|
||||||
|
|
||||||
|
if (subentity.getEntityClass().equals(VOConstants.EntityClassType.PERSON)) {
|
||||||
|
entityJson.setVisMode("PERSON");
|
||||||
|
} else if (subentity.getEntityClass().equals(VOConstants.EntityClassType.ORGANIZATION)) {
|
||||||
|
entityJson.setVisMode("ORGANIZATION");
|
||||||
|
}
|
||||||
|
|
||||||
|
subEntitiesJson.add(entityJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
SubjectEntityJSON subjectEntityJSON = new SubjectEntityJSON(subjectEntity.getEntityLabel(),
|
||||||
|
subjectEntity.getEntityURI(),
|
||||||
|
subjectEntity.getParents());
|
||||||
|
|
||||||
|
subEntitiesJson.add(subjectEntityJSON);
|
||||||
|
|
||||||
|
return json.toJson(subEntitiesJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getEntityPublicationsPerYearCSVContent(Entity entity) {
|
||||||
|
|
||||||
|
StringBuilder csvFileContent = new StringBuilder();
|
||||||
|
|
||||||
|
csvFileContent.append("Entity Name, Publication Count, Entity Type\n");
|
||||||
|
|
||||||
|
for (SubEntity subEntity : entity.getSubEntities()) {
|
||||||
|
|
||||||
|
csvFileContent.append(StringEscapeUtils.escapeCsv(subEntity.getIndividualLabel()));
|
||||||
|
csvFileContent.append(", ");
|
||||||
|
csvFileContent.append(subEntity.getActivities().size());
|
||||||
|
csvFileContent.append(", ");
|
||||||
|
|
||||||
|
String allTypes = StringUtils.join(subEntity.getEntityTypeLabels(), "; ");
|
||||||
|
|
||||||
|
csvFileContent.append(StringEscapeUtils.escapeCsv(allTypes));
|
||||||
|
csvFileContent.append("\n");
|
||||||
|
}
|
||||||
|
return csvFileContent.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue