2023-06-15 11:37:01 +02:00
|
|
|
package eu.dnetlib.openaire.community.db.utils;
|
2023-06-14 13:53:59 +02:00
|
|
|
|
2023-06-15 11:27:59 +02:00
|
|
|
import static eu.dnetlib.openaire.community.CommunityConstants.PIPE_SEPARATOR;
|
|
|
|
|
2023-06-15 14:37:15 +02:00
|
|
|
import java.util.Arrays;
|
|
|
|
|
2023-06-14 13:53:59 +02:00
|
|
|
import eu.dnetlib.openaire.community.db.model.DbCommunity;
|
2023-06-15 10:18:18 +02:00
|
|
|
import eu.dnetlib.openaire.community.db.model.DbDatasource;
|
|
|
|
import eu.dnetlib.openaire.community.db.model.DbOrganization;
|
2023-06-14 13:53:59 +02:00
|
|
|
import eu.dnetlib.openaire.community.db.model.DbProject;
|
2023-06-15 10:18:18 +02:00
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityContentprovider;
|
2023-06-15 14:37:15 +02:00
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityDetails;
|
2023-06-15 10:18:18 +02:00
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityOrganization;
|
2023-06-14 13:53:59 +02:00
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunityProject;
|
|
|
|
import eu.dnetlib.openaire.exporter.model.community.CommunitySummary;
|
2023-06-15 14:37:15 +02:00
|
|
|
import eu.dnetlib.openaire.exporter.model.community.selectioncriteria.SelectionCriteria;
|
2023-06-14 13:53:59 +02:00
|
|
|
|
|
|
|
public class ConvertionUtils {
|
|
|
|
|
2023-06-15 14:37:15 +02:00
|
|
|
public static CommunitySummary toCommunitySummary(final DbCommunity c) {
|
2023-06-15 11:27:59 +02:00
|
|
|
final CommunitySummary summary = new CommunitySummary();
|
2023-06-15 14:37:15 +02:00
|
|
|
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;
|
|
|
|
}
|
2023-06-15 11:27:59 +02:00
|
|
|
|
2023-06-15 14:37:15 +02:00
|
|
|
private static void populateSummary(final CommunitySummary summary, final DbCommunity c) {
|
2023-06-15 11:27:59 +02:00
|
|
|
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());
|
2023-06-14 13:53:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static CommunityProject toCommunityProject(final DbProject dbEntry) {
|
2023-06-15 11:27:59 +02:00
|
|
|
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;
|
2023-06-14 13:53:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static DbProject toDbProject(final String id, final CommunityProject project) {
|
2023-06-15 14:37:15 +02:00
|
|
|
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;
|
2023-06-14 13:53:59 +02:00
|
|
|
}
|
|
|
|
|
2023-06-15 10:18:18 +02:00
|
|
|
public static CommunityContentprovider toCommunityContentprovider(final DbDatasource dbEntry) {
|
2023-06-15 11:27:59 +02:00
|
|
|
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;
|
2023-06-15 10:18:18 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static DbDatasource toDbDatasource(final String id, final CommunityContentprovider provider) {
|
2023-06-15 14:37:15 +02:00
|
|
|
final DbDatasource ds = new DbDatasource();
|
|
|
|
ds.setCommunity(id);
|
|
|
|
ds.setDsId(provider.getOpenaireId());
|
|
|
|
ds.setDsName(provider.getName());
|
|
|
|
return ds;
|
2023-06-15 10:18:18 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static CommunityOrganization toCommunityOrganiztion(final DbOrganization dbEntry) {
|
2023-06-15 11:27:59 +02:00
|
|
|
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;
|
2023-06-15 10:18:18 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static DbOrganization toDbOrganization(final String id, final CommunityOrganization org) {
|
2023-06-15 14:37:15 +02:00
|
|
|
final DbOrganization dbo = new DbOrganization();
|
|
|
|
dbo.setCommunity(id);
|
|
|
|
dbo.setOrgId(org.getId());
|
|
|
|
|
|
|
|
// TODO le Support Orgs non sono ancora gestite
|
|
|
|
return dbo;
|
2023-06-15 10:18:18 +02:00
|
|
|
}
|
|
|
|
|
2023-06-14 13:53:59 +02:00
|
|
|
}
|