diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java index 5f013587..ffa1a014 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java @@ -247,88 +247,63 @@ public class CommunityImporterService { details.setType(CommunityType.valueOf(c.getType())); details.setMembership(CommunityMembershipType.open); details.setClaim(CommunityClaimType.all); - - final Map> params = c.getParams(); - if (params.containsKey(CSUMMARY_DESCRIPTION)) { - details.setDescription(asCsv(params.get(CSUMMARY_DESCRIPTION))); - } - if (params.containsKey(CSUMMARY_LOGOURL)) { - details.setLogoUrl(asCsv(params.get(CSUMMARY_LOGOURL))); - } - if (params.containsKey(CSUMMARY_STATUS)) { - details.setStatus(CommunityStatus.valueOf(firstValue(params, CSUMMARY_STATUS))); - } - if (params.containsKey(CSUMMARY_NAME)) { - details.setName(asCsv(params.get(CSUMMARY_NAME))); - } else { - details.setName(c.getLabel()); - } - if (params.containsKey(CSUMMARY_ZENODOC)) { - details.setZenodoCommunity(asCsv(params.get(CSUMMARY_ZENODOC))); - } - if (params.containsKey(CPROFILE_SUBJECT)) { - details.setSubjects(splitValues(asValues(params.get(CPROFILE_SUBJECT)), CSV_DELIMITER)); - } - if (params.containsKey(CPROFILE_FOS)) { - details.setFos(splitValues(asValues(params.get(CPROFILE_FOS)), CSV_DELIMITER)); - } - if (params.containsKey(CPROFILE_SDG)) { - details.setSdg(splitValues(asValues(params.get(CPROFILE_SDG)), CSV_DELIMITER)); - } - if (params.containsKey(CPROFILE_ADVANCED_CONSTRAINT)) { - // In the map the string is the serialization of the json representing the selection criteria so it is a valid json - details.setAdvancedConstraints(SelectionCriteria.fromJson(asCsv(params.get(CPROFILE_ADVANCED_CONSTRAINT)))); - } - if (params.containsKey(CPROFILE_REMOVE_CONSTRAINT)) { - // In the map the string is the serialization of the json representing the selection criteria so it is a valid json - details.setRemoveConstraints(SelectionCriteria.fromJson(asCsv(params.get(CPROFILE_REMOVE_CONSTRAINT)))); - } - if (params.containsKey(CPROFILE_CREATIONDATE)) { - try { - details.setCreationDate(CommunityMappingUtils.asLocalDateTime(asCsv(params.get(CPROFILE_CREATIONDATE)))); - } catch (final Exception e) { - log.debug("Exception on date format: " + e.getMessage()); - } + details.setDescription(asCsv(CSUMMARY_DESCRIPTION, c.getParams())); + details.setLogoUrl(asCsv(CSUMMARY_LOGOURL, c.getParams())); + details.setStatus(CommunityStatus.valueOf(firstValue(CSUMMARY_STATUS, c.getParams()))); + details.setName(asCsv(CSUMMARY_NAME, c.getParams())); + details.setName(c.getLabel()); + details.setZenodoCommunity(asCsv(CSUMMARY_ZENODOC, c.getParams())); + details.setSubjects(splitValues(asValues(CPROFILE_SUBJECT, c.getParams()), CSV_DELIMITER)); + details.setFos(splitValues(asValues(CPROFILE_FOS, c.getParams()), CSV_DELIMITER)); + details.setSdg(splitValues(asValues(CPROFILE_SDG, c.getParams()), CSV_DELIMITER)); + // In the map the string is the serialization of the json representing the selection criteria so it is a valid json + details.setAdvancedConstraints(SelectionCriteria.fromJson(asCsv(CPROFILE_ADVANCED_CONSTRAINT, c.getParams()))); + // In the map the string is the serialization of the json representing the selection criteria so it is a valid json + details.setRemoveConstraints(SelectionCriteria.fromJson(asCsv(CPROFILE_REMOVE_CONSTRAINT, c.getParams()))); + try { + details.setCreationDate(CommunityMappingUtils.asLocalDateTime(asCsv(CPROFILE_CREATIONDATE, c.getParams()))); + } catch (final Exception e) { + log.debug("Exception on date format: " + e.getMessage()); } return details; } private static CommunityProject asCommunityProject(final String communityId, final Concept c) { - final Map> p = c.getParams(); + final List p = c.getParams(); final CommunityProject project = new CommunityProject(); project.setCommunityId(communityId); - project.setOpenaireId(firstValue(p, OPENAIRE_ID)); - project.setFunder(firstValue(p, CPROJECT_FUNDER)); - project.setGrantId(firstValue(p, CPROJECT_NUMBER)); - project.setName(firstValue(p, CPROJECT_FULLNAME)); - project.setAcronym(firstValue(p, CPROJECT_ACRONYM)); + project.setOpenaireId(firstValue(OPENAIRE_ID, p)); + project.setFunder(firstValue(CPROJECT_FUNDER, p)); + project.setGrantId(firstValue(CPROJECT_NUMBER, p)); + project.setName(firstValue(CPROJECT_FULLNAME, p)); + project.setAcronym(firstValue(CPROJECT_ACRONYM, p)); return project; } private static CommunityContentprovider asCommunityDataprovider(final String communityId, final Concept c) { - final Map> p = c.getParams(); + final List p = c.getParams(); final CommunityContentprovider d = new CommunityContentprovider(); d.setCommunityId(communityId); - d.setOpenaireId(firstValue(p, OPENAIRE_ID)); - d.setName(firstValue(p, CCONTENTPROVIDER_NAME)); - d.setOfficialname(firstValue(p, CCONTENTPROVIDER_OFFICIALNAME)); - d.setSelectioncriteria(SelectionCriteria.fromJson(firstValue(p, CCONTENTPROVIDER_SELCRITERIA))); + d.setOpenaireId(firstValue(OPENAIRE_ID, p)); + d.setName(firstValue(CCONTENTPROVIDER_NAME, p)); + d.setOfficialname(firstValue(CCONTENTPROVIDER_OFFICIALNAME, p)); + d.setSelectioncriteria(SelectionCriteria.fromJson(firstValue(CCONTENTPROVIDER_SELCRITERIA, p))); return d; } private static CommunityOrganization asCommunityOrganization(final String id, final Concept c) { - final Map> p = c.getParams(); + final List p = c.getParams(); final CommunityOrganization o = new CommunityOrganization(); o.setCommunityId(id); - o.setName(firstValue(p, CORGANIZATION_NAME)); - o.setLogo_url(getDecodedUrl(firstValue(p, CORGANIZATION_LOGOURL))); - o.setWebsite_url(getDecodedUrl(firstValue(p, CORGANIZATION_WEBSITEURL))); + o.setName(firstValue(CORGANIZATION_NAME, p)); + o.setLogo_url(getDecodedUrl(firstValue(CORGANIZATION_LOGOURL, p))); + o.setWebsite_url(getDecodedUrl(firstValue(CORGANIZATION_WEBSITEURL, p))); return o; } private static String asZenodoCommunity(final Concept c) { - return firstValue(c.getParams(), CZENODOCOMMUNITY_ID); + return firstValue(CZENODOCOMMUNITY_ID, c.getParams()); } private static List asSubCommunities(final String communityId, final String parent, final String category, final List concepts) { @@ -368,18 +343,20 @@ public class CommunityImporterService { .collect(Collectors.toList()); } - private static String firstValue(final Map> p, final String paramName) { - return asValues(p.get(paramName)).findFirst().orElse(null); + private static String firstValue(final String name, final List params) { + return asValues(name, params).findFirst().orElse(null); } - private static String asCsv(final List params) { - return asValues(params) - .collect(Collectors.joining(CSV_DELIMITER)); + private static String asCsv(final String name, final List params) { + return asValues(name, params).collect(Collectors.joining(CSV_DELIMITER)); } - private static Stream asValues(final List params) { + private static Stream asValues(final String name, final List params) { return params == null ? Stream.empty() : params.stream() + .filter(p -> p != null) + .filter(p -> StringUtils.isNotBlank(p.getName())) + .filter(p -> p.getName().trim().equals(name.trim())) .map(Param::getValue) .map(StringUtils::trim) .distinct(); diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbSubCommunity.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbSubCommunity.java index 7d6b8954..f24c2716 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbSubCommunity.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/model/DbSubCommunity.java @@ -1,9 +1,8 @@ package eu.dnetlib.openaire.community.model; import java.io.Serializable; -import java.util.LinkedHashMap; +import java.util.ArrayList; import java.util.List; -import java.util.Map; import javax.persistence.Column; import javax.persistence.Entity; @@ -46,7 +45,7 @@ public class DbSubCommunity implements Serializable { @Type(type = "jsonb") @Column(name = "params") - private Map> params = new LinkedHashMap<>(); + private List params = new ArrayList<>(); @Column(name = "parent") private String parent; @@ -86,11 +85,11 @@ public class DbSubCommunity implements Serializable { this.category = category; } - public Map> getParams() { + public List getParams() { return params; } - public void setParams(final Map> params) { + public void setParams(final List params) { this.params = params; } diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextApiCore.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextApiCore.java index 02c29a7e..6ff9a95c 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextApiCore.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextApiCore.java @@ -32,13 +32,19 @@ public class ContextApiCore { private ISClient isClient; public List listContexts(final List type) throws ContextException { + return getContextMap(type).values() .stream() .map(c -> new ContextSummary() .setId(c.getId()) .setType(c.getType()) .setLabel(c.getLabel()) - .setStatus(c.getParams().containsKey("status") ? c.getParams().get("status").get(0).getValue() : "")) + .setStatus(c.getParams() + .stream() + .filter(p -> p.getName().equals("status")) + .map(p -> p.getValue()) + .findFirst() + .orElse(""))) .collect(Collectors.toList()); } diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextMappingUtils.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextMappingUtils.java index 7a864621..8e001050 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextMappingUtils.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/context/ContextMappingUtils.java @@ -1,7 +1,6 @@ package eu.dnetlib.openaire.context; import java.text.ParseException; -import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -103,18 +102,12 @@ public class ContextMappingUtils { return BooleanUtils.toBooleanObject(StringUtils.isNotBlank(claim) ? claim : "false"); } - private static Map> parseParams(final Element e) { + private static List parseParams(final Element e) { final List params = e.selectNodes("./param"); return params.stream() .map(n -> (Element) n) - .map(p -> new Param() - .setName(p.attributeValue("name")) - .setValue(p.getTextTrim())) - .collect(Collectors.toMap(Param::getName, Lists::newArrayList, (p1, p2) -> { - final List p = new ArrayList<>(p1); - p.addAll(p2); - return p; - })); + .map(p -> new Param().setName(p.attributeValue("name")).setValue(p.getTextTrim())) + .collect(Collectors.toList()); } public static FunderDetails asFunderDetails(final Context c) { diff --git a/apps/dnet-exporter-api/src/test/java/eu/dnetlib/openaire/community/importer/CommunityImporterServiceTest.java b/apps/dnet-exporter-api/src/test/java/eu/dnetlib/openaire/community/importer/CommunityImporterServiceTest.java index 0d2f4b97..305f40e1 100644 --- a/apps/dnet-exporter-api/src/test/java/eu/dnetlib/openaire/community/importer/CommunityImporterServiceTest.java +++ b/apps/dnet-exporter-api/src/test/java/eu/dnetlib/openaire/community/importer/CommunityImporterServiceTest.java @@ -111,4 +111,51 @@ class CommunityImporterServiceTest { } + @SuppressWarnings("unchecked") + @Test + public void testImportCommunityFetFp7() throws Exception { + final String profile = IOUtils.toString(getClass().getResourceAsStream("old_community_profile_fet-fp7.xml"), StandardCharsets.UTF_8.toString()); + + final Queue errors = new LinkedList<>(); + final Context context = ContextMappingUtils.parseContext(profile, errors); + assertTrue(errors.isEmpty()); + + // Mockito.when(jdbcTemplate.queryForList(Mockito.anyString(), Mockito.any(Class.class), + // Mockito.anyString())).thenReturn(Arrays.asList("corda_______")); + importer.importCommunity(context); + + final ArgumentCaptor detailsCapture = ArgumentCaptor.forClass(CommunityDetails.class); + final ArgumentCaptor projectsCapture = ArgumentCaptor.forClass(CommunityProject.class); + final ArgumentCaptor datasourcesCapture = ArgumentCaptor.forClass(CommunityContentprovider.class); + final ArgumentCaptor orgsCapture = ArgumentCaptor.forClass(CommunityOrganization.class); + final ArgumentCaptor subCommunitiesCapture = ArgumentCaptor.forClass(SubCommunity.class); + + Mockito.verify(service, Mockito.times(1)).saveCommunity(detailsCapture.capture()); + Mockito.verify(service, Mockito.times(1)).addCommunityProjects(Mockito.anyString(), projectsCapture.capture()); + Mockito.verify(service, Mockito.times(1)).addCommunityContentProviders(Mockito.anyString(), datasourcesCapture.capture()); + Mockito.verify(service, Mockito.times(1)).addCommunityOrganizations(Mockito.anyString(), orgsCapture.capture()); + Mockito.verify(service, Mockito.times(1)).addSubCommunities(subCommunitiesCapture.capture()); + + final CommunityDetails details = detailsCapture.getValue(); + assertEquals("fet-fp7", details.getId()); + // System.out.println(details); + + final List projects = projectsCapture.getAllValues(); + assertEquals(0, projects.size()); + // projects.forEach(System.out::println); + + final List datasources = datasourcesCapture.getAllValues(); + assertEquals(0, datasources.size()); + // datasources.forEach(System.out::println); + + final List orgs = orgsCapture.getAllValues(); + assertEquals(0, orgs.size()); + // orgs.forEach(System.out::println); + + final List subs = subCommunitiesCapture.getAllValues(); + assertEquals(151, subs.size()); + subs.forEach(System.out::println); + + } + } diff --git a/apps/dnet-exporter-api/src/test/resources/eu/dnetlib/openaire/community/importer/old_community_profile_fet-fp7.xml b/apps/dnet-exporter-api/src/test/resources/eu/dnetlib/openaire/community/importer/old_community_profile_fet-fp7.xml new file mode 100644 index 00000000..b5b5abbc --- /dev/null +++ b/apps/dnet-exporter-api/src/test/resources/eu/dnetlib/openaire/community/importer/old_community_profile_fet-fp7.xml @@ -0,0 +1,1439 @@ + +
+ + + + + +
+ + + + hidden + + 7.A.SP1.03.08 + ICT-2007.8.0 + 7.A.SP1.03 + + 7.A.SP1.03.08.08 + ICT-2009.8.0 + 7.A.SP1.03.08 + + 245410 + FP7-ICT-2009-C + 245410 + MODAP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 249858 + FP7-ICT-2009-C + 249858 + TANGO + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 249867 + FP7-ICT-2009-C + 249867 + OPTONEURO + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 249958 + FP7-ICT-2009-C + 249958 + PICC + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 250026 + FP7-ICT-2009-C + 250026 + SIEMPRE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 250056 + FP7-ICT-2009-C + 250056 + TREASURE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 250072 + FP7-ICT-2009-C + 250072 + ISENSE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 255827 + FP7-ICT-2009-C + 255827 + CG LEARNING + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 255914 + FP7-ICT-2009-C + 255914 + PHORBITECH + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 255931 + FP7-ICT-2009-C + 255931 + UNLOCX + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 255951 + FP7-ICT-2009-C + 255951 + LIFT + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 255961 + FP7-ICT-2009-C + 255961 + QCS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 255987 + FP7-ICT-2009-C + 255987 + FOC-II + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 256230 + FP7-ICT-2009-C + 256230 + LISTA + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 265578 + FP7-ICT-2009-C + 265578 + HIATUS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 265432 + FP7-ICT-2009-C + 265432 + EVERYAWARE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 265496 + FP7-ICT-2009-C + 265496 + STAMINA + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 265505 + FP7-ICT-2009-C + 265505 + CADMAD + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 265522 + FP7-ICT-2009-C + 265522 + MALICIA + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 266722 + FP7-ICT-2009-C + 266722 + SUMO + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 266723 + FP7-ICT-2009-C + 266723 + GSDP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 268478 + FP7-ICT-2009-C + 268478 + REWIND + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 270749 + FP7-ICT-2009-C + 270749 + 2D-NANOLATTICES + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 270773 + FP7-ICT-2009-C + 270773 + RAMPLAS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 270780 + FP7-ICT-2009-C + 270780 + ILHAIRE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 270833 + FP7-ICT-2009-C + 270833 + DATA SIM + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 270843 + FP7-ICT-2009-C + 270843 + IQIT + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 271554 + FP7-ICT-2009-C + 271554 + SE2ND + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 271574 + FP7-ICT-2009-C + 271574 + INSITE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 271578 + FP7-ICT-2009-C + 271578 + ETOILECASCADESIDEAS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + 286370 + FP7-ICT-2009-C + 286370 + SINTELNET + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.08 + + + + 7.A.SP1.03.30.05 + ICT-2013.9.5 + 7.A.SP1.03.30 + + 613024 + FP7-ICT-2013-X + 613024 + GRASP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + 613044 + FP7-ICT-2013-X + 613044 + ABACUS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + 613055 + FP7-ICT-2013-X + 613055 + GEMINI + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + 612759 + FP7-ICT-2013-X + 612759 + INSPIN + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + 612862 + FP7-ICT-2013-X + 612862 + HAIRS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + 612933 + FP7-ICT-2013-X + 612933 + RECALL + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + 612944 + FP7-ICT-2013-X + 612944 + MAESTRA + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + 612985 + FP7-ICT-2013-X + 612985 + UPSCALE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.05 + + + + + ICT-2013.9.9 + 7.A.SP1.03.30 + + 7.A.SP1.03.19.05 + ICT-2011.9.5 + 7.A.SP1.03.19 + + 284558 + FP7-ICT-2011-FET-F + 284558 + GRAPHENE-CA + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.05 + + + 284709 + FP7-ICT-2011-FET-F + 284709 + FUTURICT + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.05 + + + 284891 + FP7-ICT-2011-FET-F + 284891 + FLEET + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.05 + + + 284941 + FP7-ICT-2011-FET-F + 284941 + HBP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.05 + + + 284951 + FP7-ICT-2011-FET-F + 284951 + CA-ROBOCOM + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.05 + + + 285406 + FP7-ICT-2011-FET-F + 285406 + GUARDIAN ANGELS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.05 + + + 285609 + FP7-ICT-2011-FET-F + 285609 + ITFOM + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.05 + + + + 7.A.SP1.03.30.09 + ICT-2013.9.9 + 7.A.SP1.03.30 + + 604102 + FP7-ICT-2013-FET-F + 604102 + HBP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.09 + + + 604391 + FP7-ICT-2013-FET-F + 604391 + GRAPHENE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.09 + + + 619318 + FP7-ICT-2013-11 + 619318 + FLAG-ERA + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.09 + + + + + + 7.A.SP1.03.08.09 + ICT-2009.8.1 + 7.A.SP1.03.08 + + 247846 + FP7-ICT-2009-4 + 247846 + EURETILE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.09 + + + 248465 + FP7-ICT-2009-4 + 248465 + S(O)OS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.09 + + + 248789 + FP7-ICT-2009-4 + 248789 + TRAMS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.09 + + + 249013 + FP7-ICT-2009-4 + 249013 + TERAFLUX + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.09 + + + + 7.A.SP1.03.08.10 + ICT-2009.8.2 + 7.A.SP1.03.08 + + 248629 + FP7-ICT-2009-4 + 248629 + SOLID + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.10 + + + 247687 + FP7-ICT-2009-4 + 247687 + AQUTE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.10 + + + 248095 + FP7-ICT-2009-4 + 248095 + Q-ESSENCE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.10 + + + + 7.A.SP1.03.08.11 + ICT-2009.8.3 + 7.A.SP1.03.08 + + 248919 + FP7-ICT-2009-4 + 248919 + BACTOCOM + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.11 + + + 248992 + FP7-ICT-2009-4 + 248992 + NEUNEU + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.11 + + + 249032 + FP7-ICT-2009-4 + 249032 + MATCHIT + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.11 + + + + 7.A.SP1.03.08.12 + ICT-2009.8.4 + 7.A.SP1.03.08 + + 257695 + FP7-ICT-2009-5 + 257695 + VERE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.12 + + + 258749 + FP7-ICT-2009-5 + 258749 + CEEDS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.12 + + + + 7.A.SP1.03.08.13 + ICT-2009.8.5 + 7.A.SP1.03.08 + + 256873 + FP7-ICT-2009-5 + 256873 + SAPERE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.13 + + + 257414 + FP7-ICT-2009-5 + 257414 + ASCENS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.13 + + + 257756 + FP7-ICT-2009-5 + 257756 + RECOGNITION + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.13 + + + 257906 + FP7-ICT-2009-5 + 257906 + EPICS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.13 + + + + 7.A.SP1.03.08.14 + ICT-2009.8.6 + 7.A.SP1.03.08 + + 256959 + FP7-ICT-2009-5 + 256959 + NANOPOWER + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.14 + + + 257750 + FP7-ICT-2009-5 + 257750 + GREEN SILICON + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.14 + + + 257856 + FP7-ICT-2009-5 + 257856 + SINAPS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.14 + + + + 7.A.SP1.03.08.15 + ICT-2009.8.7 + 7.A.SP1.03.08 + + 270028 + FP7-ICT-2009-6 + 270028 + ATMOL + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.15 + + + 270197 + FP7-ICT-2009-6 + 270197 + DIAMANT + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.15 + + + 270369 + FP7-ICT-2009-6 + 270369 + ELFOS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.15 + + + 270483 + FP7-ICT-2009-6 + 270483 + FOCUS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.15 + + + + 7.A.SP1.03.08.16 + ICT-2009.8.8 + 7.A.SP1.03.08 + + 269459 + FP7-ICT-2009-6 + 269459 + CORONET + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.16 + + + 269921 + FP7-ICT-2009-6 + 269921 + BRAINSCALES + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.16 + + + 270324 + FP7-ICT-2009-6 + 270324 + SEEBETTER + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.16 + + + 270434 + FP7-ICT-2009-6 + 270434 + REALNET + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.08.16 + + + + 7.A.SP1.03.19.06 + ICT-2011.9.6 + 7.A.SP1.03.19 + + 316366 + FP7-ICT-2011-8 + 316366 + PHYCHIP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.06 + + + 317662 + FP7-ICT-2011-8 + 317662 + NASCENCE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.06 + + + 317707 + FP7-ICT-2011-8 + 317707 + MULTI + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.06 + + + 318202 + FP7-ICT-2011-8 + 318202 + BIOMICS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.06 + + + 318516 + FP7-ICT-2011-8 + 318516 + MOLARNET + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.06 + + + 318597 + FP7-ICT-2011-8 + 318597 + SYMONE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.06 + + + 318671 + FP7-ICT-2011-8 + 318671 + MICREAGENTS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.06 + + + + 7.A.SP1.03.19.07 + ICT-2011.9.7 + 7.A.SP1.03.19 + + 316705 + FP7-ICT-2011-8 + 316705 + HIERATIC + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 317532 + FP7-ICT-2011-8 + 317532 + MULTIPLEX + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 317534 + FP7-ICT-2011-8 + 317534 + SOPHOCLES + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 317614 + FP7-ICT-2011-8 + 317614 + PLEXMATH + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 317672 + FP7-ICT-2011-8 + 317672 + CONGAS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 318121 + FP7-ICT-2011-8 + 318121 + TOPDRIM + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 318132 + FP7-ICT-2011-8 + 318132 + LASAGNE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 318493 + FP7-ICT-2011-8 + 318493 + TOPOSYS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + 318723 + FP7-ICT-2011-8 + 318723 + MATHEMACS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.07 + + + + 7.A.SP1.03.19.08 + ICT-2011.9.8 + 7.A.SP1.03.19 + + 318013 + FP7-ICT-2011-8 + 318013 + PHIDIAS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.08 + + + 318287 + FP7-ICT-2011-8 + 318287 + LANDAUER + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.08 + + + 318337 + FP7-ICT-2011-8 + 318337 + ENTRA + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.08 + + + 318397 + FP7-ICT-2011-8 + 318397 + TOLOP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.08 + + + 318490 + FP7-ICT-2011-8 + 318490 + SENSATION + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.08 + + + 318693 + FP7-ICT-2011-8 + 318693 + PARADIME + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.08 + + + 318793 + FP7-ICT-2011-8 + 318793 + EXA2GREEN + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.08 + + + + 7.A.SP1.03.19.09 + ICT-2011.9.9 + 7.A.SP1.03.19 + + 600645 + FP7-ICT-2011-9 + 600645 + SIQS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.09 + + + 600700 + FP7-ICT-2011-9 + 600700 + QALGO + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.09 + + + 600838 + FP7-ICT-2011-9 + 600838 + QWAD + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.09 + + + 600927 + FP7-ICT-2011-9 + 600927 + SCALEQIT + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.09 + + + 601126 + FP7-ICT-2011-9 + 601126 + HANAS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.09 + + + 601180 + FP7-ICT-2011-9 + 601180 + MATTERWAVE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.09 + + + + 7.A.SP1.03.19.10 + ICT-2011.9.10 + 7.A.SP1.03.19 + + 600654 + FP7-ICT-2011-9 + 600654 + DIVERSIFY + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.10 + + + 600708 + FP7-ICT-2011-9 + 600708 + QUANTICOL + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.10 + + + 600792 + FP7-ICT-2011-9 + 600792 + ALLOW ENSEMBLES + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.10 + + + 600854 + FP7-ICT-2011-9 + 600854 + SMARTSOCIETY + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.10 + + + 601062 + FP7-ICT-2011-9 + 601062 + SWARM-ORGAN + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.10 + + + 601074 + FP7-ICT-2011-9 + 601074 + ASSISI_BF + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.10 + + + 601148 + FP7-ICT-2011-9 + 601148 + CASSTING + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.10 + + + + 7.A.SP1.03.19.11 + ICT-2011.9.11 + 7.A.SP1.03.19 + + 600725 + FP7-ICT-2011-9 + 600725 + GRIDMAP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 600730 + FP7-ICT-2011-9 + 600730 + MAGNETRODES + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 600785 + FP7-ICT-2011-9 + 600785 + SPACECOG + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 600806 + FP7-ICT-2011-9 + 600806 + CORTICONIC + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 600847 + FP7-ICT-2011-9 + 600847 + RENVISION + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 600925 + FP7-ICT-2011-9 + 600925 + NEUROSEEKER + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 600954 + FP7-ICT-2011-9 + 600954 + VISUALISE + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 601167 + FP7-ICT-2011-9 + 601167 + CSNII + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + 601215 + FP7-ICT-2011-9 + 601215 + SI ELEGANS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.19.11 + + + + 7.A.SP1.03.30.06 + ICT-2013.9.6 + 7.A.SP1.03.30 + + 611640 + FP7-ICT-2013-10 + 611640 + EVOBLISS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.06 + + + 610427 + FP7-ICT-2013-10 + 610427 + EVOEVO + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.06 + + + 610730 + FP7-ICT-2013-10 + 610730 + EVOPROG + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.06 + + + 611687 + FP7-ICT-2013-10 + 611687 + NEBIAS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.06 + + + 612058 + FP7-ICT-2013-10 + 612058 + RAMP + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.06 + + + 612146 + FP7-ICT-2013-10 + 612146 + PLASWIRES + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.06 + + + + 7.A.SP1.03.30.07 + ICT-2013.9.7 + 7.A.SP1.03.30 + + 610446 + FP7-ICT-2013-10 + 610446 + PAMS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.07 + + + 610449 + FP7-ICT-2013-10 + 610449 + MOQUAS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.07 + + + 610637 + FP7-ICT-2013-10 + 610637 + SIAM + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.07 + + + 611143 + FP7-ICT-2013-10 + 611143 + DIADEMS + FP7 + 7.A.SP1 + 7.A.SP1.03 + 7.A.SP1.03.30.07 + + + + + + + + +
\ No newline at end of file diff --git a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/SubCommunity.java b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/SubCommunity.java index 5c6445b0..56836f26 100644 --- a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/SubCommunity.java +++ b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/SubCommunity.java @@ -1,8 +1,7 @@ package eu.dnetlib.openaire.exporter.model.community; -import java.util.LinkedHashMap; +import java.util.ArrayList; import java.util.List; -import java.util.Map; import com.fasterxml.jackson.annotation.JsonAutoDetect; @@ -28,7 +27,7 @@ public class SubCommunity { private String category; @Schema(description = "the parameters of the subCommunity", required = true) - private Map> params = new LinkedHashMap<>(); + private List params = new ArrayList<>(); @Schema(description = "it supports the claims", required = true) private boolean claim = false; @@ -73,11 +72,11 @@ public class SubCommunity { this.category = category; } - public Map> getParams() { + public List getParams() { return params; } - public void setParams(final Map> map) { + public void setParams(final List map) { this.params = map; } diff --git a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Category.java b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Category.java index 9cb3cdb4..c51db96b 100644 --- a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Category.java +++ b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Category.java @@ -1,7 +1,6 @@ package eu.dnetlib.openaire.exporter.model.context; import java.util.List; -import java.util.Map; public class Category { @@ -11,7 +10,7 @@ public class Category { private boolean claim; - private Map> params; + private List params; private List concepts; @@ -31,7 +30,7 @@ public class Category { return getConcepts() != null && !getConcepts().isEmpty(); } - public Map> getParams() { + public List getParams() { return params; } @@ -54,7 +53,7 @@ public class Category { return this; } - public Category setParams(final Map> params) { + public Category setParams(final List params) { this.params = params; return this; } diff --git a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Concept.java b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Concept.java index dd2e8f0e..db3b0a93 100644 --- a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Concept.java +++ b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Concept.java @@ -1,7 +1,6 @@ package eu.dnetlib.openaire.exporter.model.context; import java.util.List; -import java.util.Map; public class Concept { @@ -11,7 +10,7 @@ public class Concept { private boolean claim; - private Map> params; + private List params; private List concepts; @@ -31,7 +30,7 @@ public class Concept { return claim; } - public Map> getParams() { + public List getParams() { return params; } @@ -54,7 +53,7 @@ public class Concept { return this; } - public Concept setParams(final Map> params) { + public Concept setParams(final List params) { this.params = params; return this; } diff --git a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Context.java b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Context.java index ff9b42b7..e3234e3e 100644 --- a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Context.java +++ b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/context/Context.java @@ -16,7 +16,7 @@ public class Context { private Date lastUpdateDate; - private Map> params; + private List params; private Map categories; @@ -36,7 +36,7 @@ public class Context { return creationDate; } - public Map> getParams() { + public List getParams() { return params; } @@ -73,7 +73,7 @@ public class Context { return this; } - public Context setParams(final Map> params) { + public Context setParams(final List params) { this.params = params; return this; }