package eu.dnetlib.openaire.community.db.utils; import static eu.dnetlib.openaire.community.CommunityConstants.PIPE_SEPARATOR; import java.util.Arrays; import eu.dnetlib.openaire.community.db.model.DbCommunity; import eu.dnetlib.openaire.community.db.model.DbDatasource; import eu.dnetlib.openaire.community.db.model.DbOrganization; import eu.dnetlib.openaire.community.db.model.DbProject; import eu.dnetlib.openaire.exporter.model.community.CommunityContentprovider; import eu.dnetlib.openaire.exporter.model.community.CommunityDetails; import eu.dnetlib.openaire.exporter.model.community.CommunityOrganization; import eu.dnetlib.openaire.exporter.model.community.CommunityProject; import eu.dnetlib.openaire.exporter.model.community.CommunitySummary; import eu.dnetlib.openaire.exporter.model.community.selectioncriteria.SelectionCriteria; public class ConvertionUtils { public static CommunitySummary toCommunitySummary(final DbCommunity c) { final CommunitySummary summary = new CommunitySummary(); populateSummary(summary, c); return summary; } public static CommunityDetails CommunityDetails(final DbCommunity c) { final CommunityDetails details = new CommunityDetails(); populateSummary(details, c); details.setAdvancedConstraints(SelectionCriteria.fromJson(c.getAdvancedConstraints())); details.setFos(Arrays.asList(c.getFos())); details.setSdg(Arrays.asList(c.getSdg())); details.setSubjects(Arrays.asList(c.getSubjects())); // TODO: add the new fields return null; } private static void populateSummary(final CommunitySummary summary, final DbCommunity c) { summary.setId(c.getId()); summary.setShortName(c.getLabel()); summary.setName(null); // TODO: the field is missing in the db model summary.setLastUpdateDate(null); // TODO: the field is missing in the db model summary.setCreationDate(c.getCreationDate()); summary.setQueryId(c.getId() + PIPE_SEPARATOR + c.getLabel()); summary.setType(c.getType().toString()); summary.setDescription(c.getDescription()); summary.setLogoUrl(c.getLogoUrl()); summary.setStatus(c.getStatus()); summary.setZenodoCommunity(c.getMainZenodoCommunity()); } public static CommunityProject toCommunityProject(final DbProject dbEntry) { final CommunityProject cp = new CommunityProject(); cp.setCommunityId(dbEntry.getCommunity()); // TODO id e openaireId sono uguali cp.setId(dbEntry.getProjectId()); cp.setOpenaireId(dbEntry.getProjectId()); cp.setName(dbEntry.getProjectName()); cp.setAcronym(dbEntry.getProjectAcronym()); cp.setFunder(dbEntry.getProjectFunder()); cp.setGrantId(dbEntry.getProjectCode()); return cp; } public static DbProject toDbProject(final String id, final CommunityProject project) { final DbProject p = new DbProject(); p.setCommunity(id); p.setProjectId(project.getOpenaireId()); p.setProjectName(project.getName()); p.setProjectAcronym(project.getAcronym()); p.setProjectCode(project.getGrantId()); p.setProjectFunder(project.getFunder()); return p; } public static CommunityContentprovider toCommunityContentprovider(final DbDatasource dbEntry) { final CommunityContentprovider ccp = new CommunityContentprovider(); ccp.setCommunityId(dbEntry.getCommunity()); // TODO id e openaireId sono uguali ccp.setId(dbEntry.getDsId()); ccp.setOpenaireId(dbEntry.getDsId()); // TODO name e officialName sono uguali ccp.setName(dbEntry.getDsName()); ccp.setOfficialname(dbEntry.getDsName()); // TODO il campo manca nel nuovo modello ccp.setSelectioncriteria(null); return ccp; } public static DbDatasource toDbDatasource(final String id, final CommunityContentprovider provider) { final DbDatasource ds = new DbDatasource(); ds.setCommunity(id); ds.setDsId(provider.getOpenaireId()); ds.setDsName(provider.getName()); return ds; } public static CommunityOrganization toCommunityOrganiztion(final DbOrganization dbEntry) { final CommunityOrganization co = new CommunityOrganization(); co.setCommunityId(dbEntry.getCommunity()); co.setId(dbEntry.getOrgId()); // TODO: // queste informazioni sono mancanti nel modello delle organizations // ma esitono in quello delle support_organizations co.setLogo_url(null); co.setName(null); co.setWebsite_url(null); return co; } public static DbOrganization toDbOrganization(final String id, final CommunityOrganization org) { final DbOrganization dbo = new DbOrganization(); dbo.setCommunity(id); dbo.setOrgId(org.getId()); // TODO le Support Orgs non sono ancora gestite return dbo; } }