49 lines
2.0 KiB
Java
49 lines
2.0 KiB
Java
package eu.eudat.file.transformer.rda.mapper;
|
|
|
|
import eu.eudat.file.transformer.enums.ReferenceType;
|
|
import eu.eudat.file.transformer.models.reference.ReferenceFileTransformerModel;
|
|
import eu.eudat.file.transformer.rda.Funding;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class FundingRDAMapper {
|
|
|
|
public static Funding toRDA(ReferenceFileTransformerModel grant, ReferenceFileTransformerModel funder) {
|
|
Funding rda = new Funding();
|
|
String referencePrefix;
|
|
String shortReference;
|
|
Integer prefixLength = 0;
|
|
if (funder.getReference() != null) {
|
|
referencePrefix = funder.getReference().split(":")[0];
|
|
prefixLength = referencePrefix.length() == funder.getReference().length() ? referencePrefix.length() - 1 : referencePrefix.length();
|
|
shortReference = funder.getReference().substring(prefixLength + 1);
|
|
rda.setFunderId(FunderIdRDAMapper.toRDA(shortReference));
|
|
} else {
|
|
rda.setFunderId(FunderIdRDAMapper.toRDA(funder.getId()));
|
|
}
|
|
if (grant.getReference() != null) {
|
|
referencePrefix = grant.getReference().split(":")[0];
|
|
prefixLength = referencePrefix.length() == grant.getReference().length() ? referencePrefix.length() - 1 : referencePrefix.length();
|
|
shortReference = grant.getReference().substring(prefixLength + 1);
|
|
rda.setGrantId(GrantIdRDAMapper.toRDA(shortReference));
|
|
} else {
|
|
rda.setGrantId(GrantIdRDAMapper.toRDA(grant.getId().toString()));
|
|
}
|
|
return rda;
|
|
}
|
|
|
|
public static List<ReferenceFileTransformerModel> toEntity(Funding rda) {
|
|
List<ReferenceFileTransformerModel> references = new ArrayList<>();
|
|
ReferenceFileTransformerModel funder = new ReferenceFileTransformerModel();
|
|
funder.setType(ReferenceType.Funder);
|
|
funder.setReference(rda.getFunderId().getIdentifier());
|
|
references.add(funder);
|
|
ReferenceFileTransformerModel grant = new ReferenceFileTransformerModel();
|
|
grant.setType(ReferenceType.Grants);
|
|
grant.setReference(rda.getGrantId().getIdentifier());
|
|
references.add(grant);
|
|
return references;
|
|
}
|
|
}
|