2024-04-26 12:50:56 +02:00
|
|
|
package org.opencdmp.model.mapper.publicapi;
|
2023-12-06 15:14:07 +01:00
|
|
|
|
2024-04-26 12:50:56 +02:00
|
|
|
import org.opencdmp.commons.types.descriptiontemplate.RuleEntity;
|
|
|
|
import org.opencdmp.model.publicapi.datasetwizard.DefaultValueEntity;
|
2024-05-02 09:46:36 +02:00
|
|
|
import org.opencdmp.model.publicapi.datasetwizard.Field;
|
2024-04-26 12:50:56 +02:00
|
|
|
import org.opencdmp.model.publicapi.datasetwizard.FieldDescriptionEntity;
|
|
|
|
import org.opencdmp.model.publicapi.datasetwizard.VisibilityEntity;
|
2023-12-06 15:14:07 +01:00
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
@Component
|
|
|
|
public class DescriptionFieldToDatasetFieldMapper {
|
|
|
|
|
2024-04-26 12:50:56 +02:00
|
|
|
public Field toPublicModel(org.opencdmp.model.descriptiontemplatedefinition.Field field) {
|
2023-12-06 15:14:07 +01:00
|
|
|
Field model = new Field();
|
|
|
|
model.setId(field.getId());
|
|
|
|
model.setOrdinal(field.getOrdinal());
|
|
|
|
model.setData(field.getData());
|
|
|
|
model.setDatatype(field.getData().getFieldType().name());
|
|
|
|
DefaultValueEntity defaultValueEntity = new DefaultValueEntity();
|
|
|
|
defaultValueEntity.setType(field.getData().getFieldType().name());
|
2024-05-02 14:57:19 +02:00
|
|
|
defaultValueEntity.setValue(field.getDefaultValue() != null ? field.getDefaultValue().getTextValue(): null); //TODO
|
2023-12-06 15:14:07 +01:00
|
|
|
model.setDefaultValue(defaultValueEntity);
|
|
|
|
model.setExport(field.getIncludeInExport());
|
|
|
|
model.setNumbering(field.getNumbering());
|
|
|
|
model.setSchematics(field.getSchematics());
|
|
|
|
model.setValidations(field.getValidations().stream().map(x -> (int) x.getValue()).toList());
|
|
|
|
VisibilityEntity visibilityEntity = new VisibilityEntity();
|
|
|
|
visibilityEntity.setRules(field.getVisibilityRules().stream().map(x -> {
|
|
|
|
RuleEntity ruleEntity = new RuleEntity();
|
2024-03-20 17:40:34 +01:00
|
|
|
ruleEntity.setDateValue(x.getDateValue());
|
2024-05-02 09:46:36 +02:00
|
|
|
ruleEntity.setBooleanValue(x.getBooleanValue());
|
2023-12-06 15:14:07 +01:00
|
|
|
ruleEntity.setTarget(x.getTarget());
|
|
|
|
return ruleEntity;
|
|
|
|
}).toList());
|
|
|
|
model.setVisible(visibilityEntity);
|
|
|
|
FieldDescriptionEntity fieldDescriptionEntity = new FieldDescriptionEntity();
|
|
|
|
model.setViewStyle(fieldDescriptionEntity);
|
|
|
|
return model;
|
|
|
|
}
|
|
|
|
}
|