53 lines
2.9 KiB
Java
53 lines
2.9 KiB
Java
package eu.eudat.model.mapper.publicapi;
|
|
|
|
import eu.eudat.model.Description;
|
|
import eu.eudat.model.publicapi.datasetprofile.DatasetProfilePublicModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.DataRepositoryPublicModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.ExternalDatasetPublicListingModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.RegistryPublicModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.ServicePublicModel;
|
|
import eu.eudat.model.publicapi.listingmodels.DataManagementPlanPublicListingModel;
|
|
import eu.eudat.model.publicapi.overviewmodels.DatasetPublicModel;
|
|
import eu.eudat.service.publicapi.PublicApiProperties;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.sql.Date;
|
|
import java.util.Objects;
|
|
|
|
@Component
|
|
public class DescriptionToPublicApiDatasetMapper {
|
|
|
|
private final DescriptionTemplateToPublicApiDatasetProfileMapper descriptionTemplateToPublicApiDatasetProfileMapper;
|
|
|
|
public DescriptionToPublicApiDatasetMapper(DescriptionTemplateToPublicApiDatasetProfileMapper descriptionTemplateToPublicApiDatasetProfileMapper) {
|
|
this.descriptionTemplateToPublicApiDatasetProfileMapper = descriptionTemplateToPublicApiDatasetProfileMapper;
|
|
}
|
|
|
|
public DatasetPublicModel toPublicModel(Description description, DataManagementPlanPublicListingModel dmp, PublicApiProperties.ReferenceTypeMapConfig config) {
|
|
DatasetPublicModel model = new DatasetPublicModel();
|
|
model.setId(description.getId());
|
|
model.setLabel(description.getLabel());
|
|
model.setDescription(description.getDescription());
|
|
model.setReference("");
|
|
model.setUri("");
|
|
model.setStatus(description.getStatus());
|
|
|
|
model.setDmp(dmp);
|
|
model.setDatasetProfileDefinition(descriptionTemplateToPublicApiDatasetProfileMapper.toPublicModel(description.getDescriptionTemplate()));
|
|
|
|
model.setProfile(DatasetProfilePublicModel.fromDataModel(description.getDescriptionTemplate()));
|
|
if (description.getDescriptionReferences() != null) {
|
|
model.setRegistries(description.getDescriptionReferences().stream().map(x-> RegistryPublicModel.fromDescriptionReference(x, config)).filter(Objects::nonNull).toList());
|
|
model.setServices(description.getDescriptionReferences().stream().map(x-> ServicePublicModel.fromDescriptionReference(x, config)).filter(Objects::nonNull).toList());
|
|
model.setDataRepositories(description.getDescriptionReferences().stream().map(x-> DataRepositoryPublicModel.fromDescriptionReference(x, config)).filter(Objects::nonNull).toList());
|
|
model.setExternalDatasets(description.getDescriptionReferences().stream().map(x-> ExternalDatasetPublicListingModel.fromDescriptionReference(x, config)).filter(Objects::nonNull).toList());
|
|
}
|
|
|
|
model.setCreatedAt(Date.from(description.getCreatedAt()));
|
|
model.setModifiedAt(Date.from(description.getUpdatedAt()));
|
|
|
|
return model;
|
|
}
|
|
|
|
}
|