argos/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DescriptionFieldSetToDatase...

37 lines
1.8 KiB
Java

package eu.eudat.model.mapper.publicapi;
import eu.eudat.commons.types.descriptiontemplate.MultiplicityEntity;
import eu.eudat.model.publicapi.datasetwizard.FieldSet;
import org.springframework.stereotype.Component;
@Component
public class DescriptionFieldSetToDatasetFieldSetMapper {
private final DescriptionFieldToDatasetFieldMapper descriptionFieldToDatasetFieldMapper;
public DescriptionFieldSetToDatasetFieldSetMapper(DescriptionFieldToDatasetFieldMapper descriptionFieldToDatasetFieldMapper) {
this.descriptionFieldToDatasetFieldMapper = descriptionFieldToDatasetFieldMapper;
}
public FieldSet toPublicModel(eu.eudat.model.descriptiontemplatedefinition.FieldSet fieldSet) {
FieldSet model = new FieldSet();
model.setId(fieldSet.getId());
model.setDescription(fieldSet.getDescription());
model.setOrdinal(fieldSet.getOrdinal());
model.setNumbering(fieldSet.getNumbering());
model.setTitle(fieldSet.getTitle());
model.setAdditionalInformation(fieldSet.getAdditionalInformation());
model.setExtendedDescription(fieldSet.getExtendedDescription());
if (fieldSet.getMultiplicity() != null) {
MultiplicityEntity multiplicityEntity = new MultiplicityEntity();
multiplicityEntity.setMin(fieldSet.getMultiplicity().getMin());
multiplicityEntity.setMax(fieldSet.getMultiplicity().getMax());
multiplicityEntity.setPlaceholder(fieldSet.getMultiplicity().getPlaceholder());
multiplicityEntity.setTableView(fieldSet.getMultiplicity().getTableView());
model.setMultiplicity(multiplicityEntity);
}
model.setFields(fieldSet.getFields().stream().map(descriptionFieldToDatasetFieldMapper::toPublicModel).toList());
return model;
}
}