argos/dmp-backend/core/src/main/java/eu/eudat/model/builder/filetransformer/DescriptionTemplateDefiniti...

244 lines
12 KiB
Java

//package eu.eudat.model.builder.filetransformer;
//
//import eu.eudat.authorization.AuthorizationFlags;
//import eu.eudat.commons.JsonHandlingService;
//import eu.eudat.commons.XmlHandlingService;
//import eu.eudat.commons.types.descriptiontemplate.*;
//import eu.eudat.commons.types.descriptiontemplate.fielddata.*;
//import eu.eudat.convention.ConventionService;
//import eu.eudat.file.transformer.enums.FieldDataExternalDatasetType;
//import eu.eudat.file.transformer.enums.FieldType;
//import eu.eudat.file.transformer.enums.FieldValidationType;
//import eu.eudat.file.transformer.models.descriptiontemplate.definition.*;
//import eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata.*;
//import gr.cite.tools.data.builder.BuilderFactory;
//import gr.cite.tools.data.query.QueryFactory;
//import gr.cite.tools.exception.MyApplicationException;
//import gr.cite.tools.logging.LoggerService;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.config.ConfigurableBeanFactory;
//import org.springframework.context.annotation.Scope;
//import org.springframework.stereotype.Component;
//
//import java.util.ArrayList;
//import java.util.EnumSet;
//import java.util.List;
//import java.util.Optional;
//
//@Component
//@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
//public class DescriptionTemplateDefinitionFileTransformerBuilder extends BaseFileTransformerBuilder<DefinitionFileTransformerModel, DefinitionEntity> {
//
// private final QueryFactory queryFactory;
//
// private final BuilderFactory builderFactory;
// private final JsonHandlingService jsonHandlingService;
//
// private final XmlHandlingService xmlHandlingService;
// private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
//
// @Autowired
// public DescriptionTemplateDefinitionFileTransformerBuilder(
// ConventionService conventionService,
// QueryFactory queryFactory,
// BuilderFactory builderFactory, JsonHandlingService jsonHandlingService, XmlHandlingService xmlHandlingService) {
// super(conventionService, new LoggerService(LoggerFactory.getLogger(DescriptionTemplateDefinitionFileTransformerBuilder.class)));
// this.queryFactory = queryFactory;
// this.builderFactory = builderFactory;
// this.jsonHandlingService = jsonHandlingService;
// this.xmlHandlingService = xmlHandlingService;
// }
//
// public DescriptionTemplateDefinitionFileTransformerBuilder authorize(EnumSet<AuthorizationFlags> values) {
// this.authorize = values;
// return this;
// }
//
// @Override
// protected List<FileTransformerBuilderItemResponse<DefinitionFileTransformerModel, DefinitionEntity>> buildInternal(List<DefinitionEntity> data) throws MyApplicationException {
// this.logger.debug("building for {}", Optional.ofNullable(data).map(List::size).orElse(0));
// if (data == null || data.isEmpty()) return new ArrayList<>();
//
// List<FileTransformerBuilderItemResponse<DefinitionFileTransformerModel, DefinitionEntity>> models = new ArrayList<>();
// for (DefinitionEntity d : data) {
// DefinitionFileTransformerModel m = new DefinitionFileTransformerModel();
// m.setPages(collectPages(d.getPages()));
// models.add(new FileTransformerBuilderItemResponse<>(m, d));
// }
//
// this.logger.debug("build {} items", Optional.of(models).map(List::size).orElse(0));
//
// return models;
// }
//
// private List<PageFileTransformerModel> collectPages(List<PageEntity> data) {
// List<PageFileTransformerModel> result = new ArrayList<>();
// for (PageEntity d: data) {
// PageFileTransformerModel m = new PageFileTransformerModel();
// m.setId(d.getId());
// m.setOrdinal(d.getOrdinal());
// m.setTitle(d.getTitle());
// if (d.getSections() != null) m.setSections(collectSections(d.getSections()));
// result.add(m);
// }
//
// return result;
// }
//
// private List<SectionFileTransformerModel> collectSections(List<SectionEntity> data) {
// List<SectionFileTransformerModel> result = new ArrayList<>();
// for (SectionEntity d : data) {
// SectionFileTransformerModel m = new SectionFileTransformerModel();
// m.setId(d.getId());
// m.setDescription(d.getDescription());
// m.setTitle(d.getTitle());
// m.setOrdinal(d.getOrdinal());
// m.setDefaultVisibility(d.isDefaultVisibility());
// m.setExtendedDescription(d.getExtendedDescription());
// m.setMultiplicity(d.getMultiplicity());
// m.setNumbering(d.getNumbering());
// if (d.getSections() != null && !d.getSections().isEmpty()) {
// m.setSections(collectSections(d.getSections()));
// }
// if (d.getFieldSets() != null && !d.getFieldSets().isEmpty()) {
// m.setFieldSets(collectFieldSet(d.getFieldSets()));
// }
// result.add(m);
// }
// return result;
// }
//
// private List<FieldSetFileTransformerModel> collectFieldSet(List<FieldSetEntity> data) {
// List<FieldSetFileTransformerModel> result = new ArrayList<>();
// for (FieldSetEntity d : data) {
// FieldSetFileTransformerModel m = new FieldSetFileTransformerModel();
// m.setId(d.getId());
// m.setDescription(d.getDescription());
// m.setExtendedDescription(d.getExtendedDescription());
// m.setAdditionalInformation(d.getAdditionalInformation());
// m.setHasCommentField(d.getHasCommentField());
// m.setNumbering(d.getNumbering());
// m.setOrdinal(d.getOrdinal());
// m.setTitle(d.getTitle());
// //m.setMultiplicity(); //TODO: No multiplicity in this code (yet)
// m.setFields(convertFields(d.getFields()));
// result.add(m);
// }
// return result;
// }
//
// private List<FieldFileTransformerModel> convertFields(List<FieldEntity> data) {
// List<FieldFileTransformerModel> result = new ArrayList<>();
// for (FieldEntity d : data) {
// FieldFileTransformerModel m = new FieldFileTransformerModel();
// m.setId(d.getId());
// m.setSchematics(d.getSchematics());
// m.setNumbering(d.getNumbering());
// m.setOrdinal(d.getOrdinal());
// m.setDefaultValue(d.getDefaultValue());
// m.setIncludeInExport(d.getIncludeInExport());
// m.setValidations(d.getValidations().stream().map(fieldValidationType -> FieldValidationType.of(fieldValidationType.getValue())).toList());
// if (d.getVisibilityRules() != null && !d.getVisibilityRules().isEmpty()) {
// m.setVisibilityRules(convertVisibilityRules(d.getVisibilityRules()));
// }
// m.setData(convertData(d.getData()));
// result.add(m);
// }
// return result;
// }
//
// public List<RuleFileTransformerModel> convertVisibilityRules(List<RuleEntity> data) {
// List<RuleFileTransformerModel> result = new ArrayList<>();
// for (RuleEntity d : data) {
// RuleFileTransformerModel m = new RuleFileTransformerModel();
// m.setTarget(d.getTarget());
// m.setValue(d.getValue());
// result.add(m);
// }
// return result;
// }
//
// public BaseFieldDataFileTransformerModel convertData (BaseFieldDataEntity data) {
// BaseFieldDataFileTransformerModel m;
// switch (data) { //TODO new reference logic
//// case ExternalSelectDataEntity d -> {
//// m = new ExternalSelectDataFileTransformerModel();
//// m.setLabel(d.getLabel());
//// m.setFieldType(FieldType.of(d.getFieldType().getValue()));
//// ((ExternalSelectDataFileTransformerModel)m).setMultipleSelect(d.getMultipleSelect());
//// ((ExternalSelectDataFileTransformerModel) m).setSources(convertAutoCompleteSingleData(d.getSources()));
//// }
//// case ExternalDatasetDataEntity d -> {
//// m = new ExternalDatasetDataFileTransformerModel();
//// m.setLabel(d.getLabel());
//// m.setFieldType(FieldType.of(d.getFieldType().getValue()));
//// ((ExternalDatasetDataFileTransformerModel)m).setType(FieldDataExternalDatasetType.of(d.getType().getValue()));
//// }
// case RadioBoxDataEntity d -> {
// m = new RadioBoxDataFileTransformerModel();
// m.setLabel(d.getLabel());
// m.setFieldType(FieldType.of(d.getFieldType().getValue()));
// ((RadioBoxDataFileTransformerModel) m).setOptions(convertRadioBoxOptions(d.getOptions()));
// }
// case UploadDataEntity d -> {
// m = new UploadDataFileTransformerModel();
// m.setLabel(d.getLabel());
// m.setFieldType(FieldType.of(d.getFieldType().getValue()));
// ((UploadDataFileTransformerModel) m).setMaxFileSizeInMB(d.getMaxFileSizeInMB());
// ((UploadDataFileTransformerModel) m).setTypes(convertUploadDataOptions(d.getTypes()));
// }
// case SelectDataEntity d -> {
// m = new SelectDataFileTransformerModel();
// m.setLabel(d.getLabel());
// m.setFieldType(FieldType.of(d.getFieldType().getValue()));
// ((SelectDataFileTransformerModel) m).setMultipleSelect(d.getMultipleSelect());
// ((SelectDataFileTransformerModel) m).setOptions(d.getOptions().stream().map(this::convertComboBoxOption).toList());
// }
// case LabelAndMultiplicityDataEntity d -> {
// m = new LabelAndMultiplicityDataFileTransformerModel();
// m.setLabel(d.getLabel());
// m.setFieldType(FieldType.of(d.getFieldType().getValue()));
// ((LabelAndMultiplicityDataFileTransformerModel)m).setMultipleSelect(d.getMultipleSelect());
// }
// default -> {
// m = new LabelDataFileTransformerModel();
// m.setLabel(data.getLabel());
// m.setFieldType(FieldType.of(data.getFieldType().getValue()));
// }
// }
// return m;
// }
//
// private List<RadioBoxDataFileTransformerModel.RadioBoxDataOptionFileTransformerModel> convertRadioBoxOptions(List<RadioBoxDataEntity.RadioBoxDataOptionEntity> data) {
// List<RadioBoxDataFileTransformerModel.RadioBoxDataOptionFileTransformerModel> result = new ArrayList<>();
// for (RadioBoxDataEntity.RadioBoxDataOptionEntity d : data) {
// RadioBoxDataFileTransformerModel.RadioBoxDataOptionFileTransformerModel m = new RadioBoxDataFileTransformerModel.RadioBoxDataOptionFileTransformerModel();
// m.setLabel(d.getLabel());
// m.setValue(d.getValue());
// result.add(m);
// }
// return result;
// }
//
// private SelectDataFileTransformerModel.OptionFileTransformerModel convertComboBoxOption(SelectDataEntity.OptionEntity data) {
// SelectDataFileTransformerModel.OptionFileTransformerModel m = new SelectDataFileTransformerModel.OptionFileTransformerModel();
// m.setLabel(data.getLabel());
// m.setValue(data.getValue());
// return m;
// }
//
// private List<UploadDataFileTransformerModel.UploadDataOptionFileTransformerModel> convertUploadDataOptions(List<UploadDataEntity.UploadDataOptionEntity> data) {
// List<UploadDataFileTransformerModel.UploadDataOptionFileTransformerModel> result = new ArrayList<>();
// for (UploadDataEntity.UploadDataOptionEntity d : data) {
// UploadDataFileTransformerModel.UploadDataOptionFileTransformerModel m = new UploadDataFileTransformerModel.UploadDataOptionFileTransformerModel();
// m.setLabel(d.getLabel());
// m.setValue(d.getValue());
// result.add(m);
// }
// return result;
// }
//
//
//}