33 lines
1.2 KiB
Java
33 lines
1.2 KiB
Java
package eu.eudat.models.rda.mapper;
|
|
|
|
import eu.eudat.data.dao.criteria.GrantCriteria;
|
|
import eu.eudat.data.entities.Grant;
|
|
import eu.eudat.logic.services.ApiContext;
|
|
import eu.eudat.models.rda.Funding;
|
|
|
|
public class FundingRDAMapper {
|
|
|
|
public static Funding toRDA(Grant grant) {
|
|
Funding rda = new Funding();
|
|
String referencePrefix;
|
|
String shortReference;
|
|
if (grant.getFunder().getReference() != null) {
|
|
referencePrefix = grant.getFunder().getReference().split(":")[0];
|
|
shortReference = grant.getFunder().getReference().substring(referencePrefix.length() + 1);
|
|
rda.setFunderId(FunderIdRDAMapper.toRDA(shortReference));
|
|
} else {
|
|
rda.setFunderId(FunderIdRDAMapper.toRDA(grant.getFunder().getId()));
|
|
}
|
|
referencePrefix = grant.getReference().split(":")[0];
|
|
shortReference = grant.getReference().substring(referencePrefix.length() + 1);
|
|
rda.setGrantId(GrantIdRDAMapper.toRDA(shortReference));
|
|
return rda;
|
|
}
|
|
|
|
public static Grant toEntity(Funding rda, ApiContext apiContext) {
|
|
GrantCriteria criteria = new GrantCriteria();
|
|
criteria.setReference(rda.getGrantId().getIdentifier());
|
|
return apiContext.getOperationsContext().getDatabaseRepository().getGrantDao().getWithCriteria(criteria).getSingle();
|
|
}
|
|
}
|