Update compatibility to the latest file transformer base

This commit is contained in:
George Kalampokis 2024-02-02 17:57:21 +02:00
parent 6af47452e9
commit 30610810da
22 changed files with 372 additions and 298 deletions

View File

@ -18,7 +18,7 @@
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release>
<revision>1.0.0-SNAPSHOT</revision>
<transformer-base.version>0.0.3</transformer-base.version>
<transformer-base.version>1.0.0-SNAPSHOT</transformer-base.version>
</properties>
<dependencies>

View File

@ -1,14 +1,16 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import eu.eudat.file.transformer.enums.FieldType;
import eu.eudat.file.transformer.enums.FieldValidationType;
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateXmlModel;
import eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata.BaseFieldDataXmlModel;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata.*;
import jakarta.xml.bind.annotation.*;
import java.util.List;
@XmlType(namespace = "description-template")
@XmlAccessorType(XmlAccessType.FIELD)
public class FieldXmlModel {
private String id;
@ -19,6 +21,37 @@ public class FieldXmlModel {
private List<RuleXmlModel> visibilityRules;
private List<FieldValidationType> validations;
private Boolean includeInExport;
@XmlElements({
@XmlElement(type = ExternalSelectDataXmlModel.class, name = FieldType.Names.ExternalSelect),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.BooleanDecision),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.InternalDmpDatasets),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.InternalDmpDmps),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.CheckBox),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.DatePicker),
@XmlElement(type = ExternalDatasetDataFileTransformerModel.class, name = FieldType.Names.ExternalDatasets),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.FreeText),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Licenses),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Organizations),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Publications),
@XmlElement(type = RadioBoxDataFileTransformerModel.class, name = FieldType.Names.RadioBox),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Registries),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.InternalDmpResearchers),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Researchers),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.RichTextarea),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Services),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.Tags),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Taxonomies),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.TextArea),
@XmlElement(type = UploadDataFileTransformerModel.class, name = FieldType.Names.Upload),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.Validation),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.DatasetIdentifier),
@XmlElement(type = LabelDataFileTransformerModel.class, name = FieldType.Names.Currency),
@XmlElement(type = SelectDataFileTransformerModel.class, name = FieldType.Names.Select),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.DataRepositories),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.JournalRepositories),
@XmlElement(type = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Publications),
})
private BaseFieldDataXmlModel data;
public String getId() {

View File

@ -1,24 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
@XmlRootElement(name = FieldType.Names.Autocomplete)
public class AutoCompleteDataXmlModel extends BaseFieldDataXmlModel {
private Boolean multiAutoComplete;
private List<AutoCompleteSingleDataXmlModel> autoCompleteSingleDataXmlModelList;
public Boolean getMultiAutoComplete() { return multiAutoComplete; }
public void setMultiAutoComplete(Boolean multiAutoComplete) { this.multiAutoComplete = multiAutoComplete; }
public List<AutoCompleteSingleDataXmlModel> getAutoCompleteSingleDataList() {
return autoCompleteSingleDataXmlModelList;
}
public void setAutoCompleteSingleDataList(List<AutoCompleteSingleDataXmlModel> autoCompleteSingleDataXmlModelList) {
this.autoCompleteSingleDataXmlModelList = autoCompleteSingleDataXmlModelList;
}
}

View File

@ -1,24 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
public class AutoCompleteSingleDataXmlModel {
private String url;
private ComboBoxOptionXmlModel autoCompleteOptions;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public ComboBoxOptionXmlModel getAutoCompleteOptions() {
return autoCompleteOptions;
}
public void setAutoCompleteOptions(ComboBoxOptionXmlModel autoCompleteOptions) {
this.autoCompleteOptions = autoCompleteOptions;
}
}

View File

@ -6,49 +6,6 @@ import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlSeeAlso;
import jakarta.xml.bind.annotation.XmlTransient;
@XmlTransient
@XmlSeeAlso({AutoCompleteDataXmlModel.class,
LabelAndMultiplicityFieldDataXmlModel.class,
LabelFieldDataXmlModel.class,
ExternalDatasetDataXmlModel.class,
RadioBoxDataXmlModel.class,
UploadDataXmlModel.class,
WordListDataXmlModel.class})
/*@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "fieldType",
visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = AutoCompleteDataXmlModel.class, name = FieldType.Names.Autocomplete),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.BooleanDecision),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.InternalDmpDatasets),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.InternalDmpDmps),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.CheckBox),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.DatePicker),
@JsonSubTypes.Type(value = ExternalDatasetDataXmlModel.class, name = FieldType.Names.ExternalDatasets),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.FreeText),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Licenses),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Organizations),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Publications),
@JsonSubTypes.Type(value = RadioBoxDataXmlModel.class, name = FieldType.Names.RadioBox),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Registries),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.InternalDmpResearchers),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Researchers),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.RichTextarea),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Services),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.Tags),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Taxonomies),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.TextArea),
@JsonSubTypes.Type(value = UploadDataXmlModel.class, name = FieldType.Names.Upload),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.Validation),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.DatasetIdentifier),
@JsonSubTypes.Type(value = LabelFieldDataXmlModel.class, name = FieldType.Names.Currency),
@JsonSubTypes.Type(value = WordListDataXmlModel.class, name = FieldType.Names.Wordlist),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.DataRepositories),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.JournalRepositories),
@JsonSubTypes.Type(value = LabelAndMultiplicityFieldDataXmlModel.class, name = FieldType.Names.Publications),
})*/
public abstract class BaseFieldDataXmlModel {
private String label;

View File

@ -1,42 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
public class ComboBoxOptionXmlModel {
private String label;
private String value;
private String source;
private String uri;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
}

View File

@ -6,7 +6,7 @@ import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = FieldType.Names.ExternalDatasets)
public class ExternalDatasetDataXmlModel extends LabelAndMultiplicityFieldDataXmlModel {
public class ExternalDatasetDataXmlModel extends LabelAndMultiplicityDataXmlModel {
private FieldDataExternalDatasetType type;
public FieldDataExternalDatasetType getType() {

View File

@ -0,0 +1,151 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.*;
import java.util.List;
@XmlRootElement(name = FieldType.Names.ExternalSelect)
public class ExternalSelectDataXmlModel extends LabelAndMultiplicityDataXmlModel {
public static class ExternalSelectAuthDataXmlModel {
private String url;
private String method;
private String body;
private String path;
private String type;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
public static class ExternalSelectSourceBindingXmlModel {
private String label;
private String value;
private String source;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
}
public static class ExternalSelectSourceXmlModel {
private String url;
private String method;
private String optionsRoot;
private ExternalSelectSourceBindingXmlModel sourceBinding;
private Boolean hasAuth;
private ExternalSelectAuthDataXmlModel auth;
public String getOptionsRoot() {
return optionsRoot;
}
public void setOptionsRoot(String optionsRoot) {
this.optionsRoot = optionsRoot;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Boolean getHasAuth() {
return hasAuth;
}
public void setHasAuth(Boolean hasAuth) {
this.hasAuth = hasAuth;
}
public ExternalSelectAuthDataXmlModel getAuth() {
return auth;
}
public void setAuth(ExternalSelectAuthDataXmlModel auth) {
this.auth = auth;
}
public ExternalSelectSourceBindingXmlModel getSourceBinding() {
return sourceBinding;
}
public void setSourceBinding(ExternalSelectSourceBindingXmlModel sourceBinding) {
this.sourceBinding = sourceBinding;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
}
private List<ExternalSelectSourceXmlModel> sources;
public List<ExternalSelectSourceXmlModel> getSources() {
return sources;
}
public void setSources(List<ExternalSelectSourceXmlModel> externalSelectSourceXmlModelList) {
this.sources = externalSelectSourceXmlModelList;
}
}

View File

@ -0,0 +1,13 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
public class LabelAndMultiplicityDataXmlModel extends BaseFieldDataXmlModel {
private Boolean multipleSelect;
public Boolean getMultipleSelect() {
return multipleSelect;
}
public void setMultipleSelect(Boolean multipleSelect) {
this.multipleSelect = multipleSelect;
}
}

View File

@ -1,19 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import jakarta.xml.bind.annotation.XmlSeeAlso;
import jakarta.xml.bind.annotation.XmlTransient;
@XmlSeeAlso({ExternalDatasetDataXmlModel.class})
public class LabelAndMultiplicityFieldDataXmlModel extends BaseFieldDataXmlModel {
private Boolean multiAutoComplete;
public Boolean getMultiAutoComplete() {
return multiAutoComplete;
}
public void setMultiAutoComplete(Boolean multiAutoComplete) {
this.multiAutoComplete = multiAutoComplete;
}
}

View File

@ -0,0 +1,4 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
public class LabelDataXmlModel extends BaseFieldDataXmlModel {
}

View File

@ -1,9 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "labelFieldData")
public class LabelFieldDataXmlModel extends BaseFieldDataXmlModel {
}

View File

@ -1,21 +1,39 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
@XmlRootElement(name = FieldType.Names.RadioBox)
public class RadioBoxDataXmlModel extends BaseFieldDataXmlModel {
public static class RadioBoxDataOptionXmlModel {
private String label;
private String value;
private List<RadioBoxOptionXmlModel> options;
public String getLabel() {
return label;
}
public List<RadioBoxOptionXmlModel> getOptions() {
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
private List<RadioBoxDataOptionXmlModel> options;
public List<RadioBoxDataOptionXmlModel> getOptions() {
return options;
}
public void setOptions(List<RadioBoxOptionXmlModel> options) {
public void setOptions(List<RadioBoxDataOptionXmlModel> options) {
this.options = options;
}
}

View File

@ -1,22 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
public class RadioBoxOptionXmlModel {
private String label;
private String value;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}

View File

@ -0,0 +1,35 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import java.util.List;
public class SelectDataXmlModel extends LabelAndMultiplicityDataXmlModel {
private List<OptionXmlModel> options;
public List<OptionXmlModel> getOptions() {
return options;
}
public void setOptions(List<OptionXmlModel> optionEntities) {
this.options = optionEntities;
}
public static class OptionXmlModel {
private String label;
private String value;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
}

View File

@ -1,6 +1,5 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement;
@ -8,18 +7,40 @@ import java.util.List;
@XmlRootElement(name = FieldType.Names.Upload)
public class UploadDataXmlModel extends BaseFieldDataXmlModel {
private List<UploadOptionXmlModel> types;
public static class UploadDataOptionXmlModel {
private String label;
private String value;
public List<UploadOptionXmlModel> getTypes() {
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
private List<UploadDataOptionXmlModel> types;
private Integer maxFileSizeInMB;
public List<UploadDataOptionXmlModel> getTypes() {
return types;
}
public void setTypes(List<UploadOptionXmlModel> types) {
public void setTypes(List<UploadDataOptionXmlModel> types) {
this.types = types;
}
private Integer maxFileSizeInMB;
public Integer getMaxFileSizeInMB() {
return maxFileSizeInMB;
}
@ -27,7 +48,4 @@ public class UploadDataXmlModel extends BaseFieldDataXmlModel {
public void setMaxFileSizeInMB(Integer maxFileSizeInMB) {
this.maxFileSizeInMB = maxFileSizeInMB;
}
}

View File

@ -1,22 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
public class UploadOptionXmlModel {
private String label;
private String value;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}

View File

@ -1,28 +0,0 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List;
@XmlRootElement(name = FieldType.Names.Wordlist)
public class WordListDataXmlModel extends BaseFieldDataXmlModel {
private List<ComboBoxOptionXmlModel> options;
private Boolean multiList;
public List<ComboBoxOptionXmlModel> getOptions() {
return options;
}
public void setOptions(List<ComboBoxOptionXmlModel> options) {
this.options = options;
}
public Boolean getMultiList() {
return multiList;
}
public void setMultiList(Boolean multiList) {
this.multiList = multiList;
}
}

View File

@ -29,7 +29,9 @@ public class DmpBlueprintXmlMapper {
xmlModel.setDescription(fileModel.getDescription());
xmlModel.setHasTemplates(fileModel.getHasTemplates());
xmlModel.setOrdinal(fileModel.getOrdinal());
xmlModel.setFields(fileModel.getFields().stream().map(DmpBlueprintXmlMapper::toFieldXml).toList());
if (fileModel.getFields() != null) {
xmlModel.setFields(fileModel.getFields().stream().map(DmpBlueprintXmlMapper::toFieldXml).toList());
}
return xmlModel;
}

View File

@ -88,7 +88,9 @@ public class DescriptionTemplateXmlMapper {
if (fileModel.getData() != null) {
xmlModel.setData(toDataXml(fileModel.getData()));
}
xmlModel.setVisibilityRules(fileModel.getVisibilityRules().stream().map(DescriptionTemplateXmlMapper::toRuleXml).toList());
if (fileModel.getVisibilityRules() != null) {
xmlModel.setVisibilityRules(fileModel.getVisibilityRules().stream().map(DescriptionTemplateXmlMapper::toRuleXml).toList());
}
return xmlModel;
}
@ -107,8 +109,8 @@ public class DescriptionTemplateXmlMapper {
SERVICES,
TAXONOMIES,
DATA_REPOSITORIES,
JOURNAL_REPOSITORIES -> new LabelAndMultiplicityFieldDataXmlModel();
case AUTO_COMPLETE -> new AutoCompleteDataXmlModel();
JOURNAL_REPOSITORIES -> new LabelAndMultiplicityDataXmlModel();
case EXTERNAL_SELECT -> new ExternalSelectDataXmlModel();
case CHECK_BOX,
DATE_PICKER,
FREE_TEXT,
@ -117,9 +119,9 @@ public class DescriptionTemplateXmlMapper {
TEXT_AREA,
VALIDATION,
DATASET_IDENTIFIER,
CURRENCY -> new LabelFieldDataXmlModel();
CURRENCY -> new LabelDataXmlModel();
case UPLOAD -> new UploadDataXmlModel();
case WORD_LIST -> new WordListDataXmlModel();
case SELECT -> new SelectDataXmlModel();
case RADIO_BOX -> new RadioBoxDataXmlModel();
case EXTERNAL_DATASETS -> new ExternalDatasetDataXmlModel();
default -> null;
@ -130,23 +132,22 @@ public class DescriptionTemplateXmlMapper {
xmlModel.setFieldType(fileModel.getFieldType());
switch (xmlModel) {
case ExternalDatasetDataXmlModel sm -> sm.setType(((ExternalDatasetDataFileTransformerModel)fileModel).getType());
case LabelAndMultiplicityFieldDataXmlModel sm -> sm.setMultiAutoComplete(((LabelAndMultiplicityFieldDataFileTransformerModel)fileModel).getMultiAutoComplete());
case AutoCompleteDataXmlModel sm -> {
AutoCompleteDataFileTransformerModel fm = ((AutoCompleteDataFileTransformerModel) fileModel);
sm.setMultiAutoComplete(fm.getMultiAutoComplete());
sm.setAutoCompleteSingleDataList(fm.getAutoCompleteSingleDataList().stream().map(FieldDataXmlMapper::toAutocompleteXml).toList());
case ExternalSelectDataXmlModel sm -> {
ExternalSelectDataFileTransformerModel fm = ((ExternalSelectDataFileTransformerModel) fileModel);
sm.setMultipleSelect(fm.getMultipleSelect());
sm.setSources(fm.getSources().stream().map(FieldDataXmlMapper::toAutocompleteXml).toList());
}
case SelectDataXmlModel sm -> {
SelectDataFileTransformerModel fm = (SelectDataFileTransformerModel) fileModel;
sm.setMultipleSelect(fm.getMultipleSelect());
sm.setOptions(fm.getOptions().stream().map(FieldDataXmlMapper::toSelectOptionXml).toList());
}
case LabelAndMultiplicityDataXmlModel sm -> sm.setMultipleSelect(((LabelAndMultiplicityDataFileTransformerModel)fileModel).getMultipleSelect());
case UploadDataXmlModel sm -> {
UploadDataFileTransformerModel fm = ((UploadDataFileTransformerModel) fileModel);
sm.setMaxFileSizeInMB(fm.getMaxFileSizeInMB());
sm.setTypes(fm.getTypes().stream().map(FieldDataXmlMapper::toUploadXml).toList());
}
case WordListDataXmlModel sm -> {
WordListDataFileTransformerModel fm = (WordListDataFileTransformerModel) fileModel;
sm.setMultiList(fm.getMultiList());
sm.setOptions(fm.getOptions().stream().map(FieldDataXmlMapper::toComboBoxXml).toList());
}
case RadioBoxDataXmlModel sm -> {
RadioBoxDataFileTransformerModel fm = (RadioBoxDataFileTransformerModel) fileModel;
sm.setOptions(fm.getOptions().stream().map(FieldDataXmlMapper::toRadioBoxXml).toList());

View File

@ -4,19 +4,34 @@ import eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata
public class FieldDataXmlMapper {
public static AutoCompleteSingleDataXmlModel toAutocompleteXml(AutoCompleteSingleDataFileTransformerModel fileModel) {
AutoCompleteSingleDataXmlModel xmlModel = new AutoCompleteSingleDataXmlModel();
public static ExternalSelectDataXmlModel.ExternalSelectSourceXmlModel toAutocompleteXml(ExternalSelectDataFileTransformerModel.ExternalSelectSourceFileTransformerModel fileModel) {
ExternalSelectDataXmlModel.ExternalSelectSourceXmlModel xmlModel = new ExternalSelectDataXmlModel.ExternalSelectSourceXmlModel();
xmlModel.setUrl(fileModel.getUrl());
xmlModel.setAutoCompleteOptions(toComboBoxXml(fileModel.getAutoCompleteOptions()));
xmlModel.setMethod(fileModel.getMethod());
xmlModel.setOptionsRoot(fileModel.getOptionsRoot());
xmlModel.setHasAuth(fileModel.getHasAuth());
if (fileModel.getAuth() != null) {
xmlModel.setAuth(toAuthXml(fileModel.getAuth()));
}
xmlModel.setSourceBinding(toExternalSelectSourceBindingXml(fileModel.getSourceBinding()));
return xmlModel;
}
public static ComboBoxOptionXmlModel toComboBoxXml(ComboBoxOptionFileTransformerModel fileModel) {
ComboBoxOptionXmlModel xmlModel = new ComboBoxOptionXmlModel();
private static ExternalSelectDataXmlModel.ExternalSelectAuthDataXmlModel toAuthXml(ExternalSelectDataFileTransformerModel.ExternalSelectAuthDataFileTransformerModel fileModel) {
ExternalSelectDataXmlModel.ExternalSelectAuthDataXmlModel xmlModel = new ExternalSelectDataXmlModel.ExternalSelectAuthDataXmlModel();
xmlModel.setUrl(fileModel.getUrl());
xmlModel.setType(fileModel.getType());
xmlModel.setBody(fileModel.getBody());
xmlModel.setMethod(fileModel.getMethod());
xmlModel.setPath(fileModel.getPath());
return xmlModel;
}
public static ExternalSelectDataXmlModel.ExternalSelectSourceBindingXmlModel toExternalSelectSourceBindingXml(ExternalSelectDataFileTransformerModel.ExternalSelectSourceBindingFileTransformerModel fileModel) {
ExternalSelectDataXmlModel.ExternalSelectSourceBindingXmlModel xmlModel = new ExternalSelectDataXmlModel.ExternalSelectSourceBindingXmlModel();
xmlModel.setUri(fileModel.getUri());
xmlModel.setLabel(fileModel.getLabel());
xmlModel.setValue(fileModel.getValue());
xmlModel.setSource(fileModel.getSource());
@ -24,15 +39,24 @@ public class FieldDataXmlMapper {
return xmlModel;
}
public static UploadOptionXmlModel toUploadXml(UploadOptionFileTransformerModel fileModel) {
UploadOptionXmlModel xmlModel = new UploadOptionXmlModel();
public static SelectDataXmlModel.OptionXmlModel toSelectOptionXml(SelectDataFileTransformerModel.OptionFileTransformerModel fileModel) {
SelectDataXmlModel.OptionXmlModel xmlModel = new SelectDataXmlModel.OptionXmlModel();
xmlModel.setLabel(fileModel.getLabel());
xmlModel.setValue(fileModel.getValue());
return xmlModel;
}
public static UploadDataXmlModel.UploadDataOptionXmlModel toUploadXml(UploadDataFileTransformerModel.UploadDataOptionFileTransformerModel fileModel) {
UploadDataXmlModel.UploadDataOptionXmlModel xmlModel = new UploadDataXmlModel.UploadDataOptionXmlModel();
xmlModel.setLabel(fileModel.getLabel());
xmlModel.setValue(fileModel.getValue());
return xmlModel;
}
public static RadioBoxOptionXmlModel toRadioBoxXml(RadioBoxOptionFileTransformerModel fileModel) {
RadioBoxOptionXmlModel xmlModel = new RadioBoxOptionXmlModel();
public static RadioBoxDataXmlModel.RadioBoxDataOptionXmlModel toRadioBoxXml(RadioBoxDataFileTransformerModel.RadioBoxDataOptionFileTransformerModel fileModel) {
RadioBoxDataXmlModel.RadioBoxDataOptionXmlModel xmlModel = new RadioBoxDataXmlModel.RadioBoxDataOptionXmlModel();
xmlModel.setLabel(fileModel.getLabel());
xmlModel.setValue(fileModel.getValue());
return xmlModel;

View File

@ -209,12 +209,12 @@ public class ExportXmlBuilderDatasetProfile {
if (field.getData() != null) {
Element dataOut = element.createElement("data");
switch (field.getData().getFieldType()) {
case WORD_LIST:
case SELECT:
{
WordListDataXmlModel wordListDataEntityObject = (WordListDataXmlModel) field.getData();
SelectDataXmlModel wordListDataEntityObject = (SelectDataXmlModel) field.getData();
dataOut.setAttribute("label", wordListDataEntityObject.getLabel());
dataOut.setAttribute("type", wordListDataEntityObject.getFieldType().getValue());
dataOut.setAttribute("multiList", wordListDataEntityObject.getMultiList().toString());
dataOut.setAttribute("multipleSelect", wordListDataEntityObject.getMultipleSelect().toString());
Element options = element.createElement("options");
wordListDataEntityObject.getOptions().forEach(optionChildFor -> {
Element optionChild = element.createElement("option");
@ -222,26 +222,34 @@ public class ExportXmlBuilderDatasetProfile {
optionChild.setAttribute("value", optionChildFor.getValue());
options.appendChild(optionChild);
});
dataOut.appendChild(options);
break;
}
case AUTO_COMPLETE:
case EXTERNAL_SELECT:
{
AutoCompleteDataXmlModel autoCompleteDataEntityObject = (AutoCompleteDataXmlModel) field.getData();
ExternalSelectDataXmlModel autoCompleteDataEntityObject = (ExternalSelectDataXmlModel) field.getData();
dataOut.setAttribute("label", autoCompleteDataEntityObject.getLabel());
dataOut.setAttribute("type", autoCompleteDataEntityObject.getFieldType().getValue());
dataOut.setAttribute("multiAutoComplete", autoCompleteDataEntityObject.getMultiAutoComplete().toString());
for (AutoCompleteSingleDataXmlModel singleData: autoCompleteDataEntityObject.getAutoCompleteSingleDataList()) {
Element singleItem = element.createElement("autocompleteSingle");
//singleItem.setAttribute("optionsRoot", singleData.getAutoCompleteOptions());
dataOut.setAttribute("multipleSelect", autoCompleteDataEntityObject.getMultipleSelect().toString());
for (ExternalSelectDataXmlModel.ExternalSelectSourceXmlModel singleData: autoCompleteDataEntityObject.getSources()) {
Element singleItem = element.createElement("selectSource");
singleItem.setAttribute("method", singleData.getMethod());
singleItem.setAttribute("url", singleData.getUrl());
singleItem.setAttribute("source", singleData.getAutoCompleteOptions().getSource());
//singleItem.setAttribute("autoCompleteType", Integer.toString(singleData.getAutoCompleteOptions().));
if (singleData.getAutoCompleteOptions() != null) {
Element optionChild = element.createElement("option");
optionChild.setAttribute("label", singleData.getAutoCompleteOptions().getLabel());
optionChild.setAttribute("value", singleData.getAutoCompleteOptions().getValue());
singleItem.appendChild(optionChild);
singleItem.setAttribute("optionsRoot", singleData.getOptionsRoot());
singleItem.setAttribute("label", singleData.getSourceBinding().getLabel());
singleItem.setAttribute("value", singleData.getSourceBinding().getValue());
singleItem.setAttribute("source", singleData.getSourceBinding().getSource());
singleItem.setAttribute("hasAuth", singleData.getHasAuth().toString());
if (singleData.getAuth() != null) {
Element authItem = element.createElement("sourceAuth");
authItem.setAttribute("method", singleData.getAuth().getMethod());
authItem.setAttribute("url", singleData.getAuth().getUrl());
authItem.setAttribute("path", singleData.getAuth().getPath());
authItem.setAttribute("body", singleData.getAuth().getBody());
authItem.setAttribute("type", singleData.getAuth().getType());
singleItem.appendChild(authItem);
}
dataOut.appendChild(singleItem);
}
@ -309,7 +317,7 @@ public class ExportXmlBuilderDatasetProfile {
case EXTERNAL_DATASETS:
ExternalDatasetDataXmlModel externalDatasetDataEntity = (ExternalDatasetDataXmlModel) field.getData();
dataOut.setAttribute("label", externalDatasetDataEntity.getLabel());
dataOut.setAttribute("multiAutocomplete", externalDatasetDataEntity.getMultiAutoComplete().toString());
dataOut.setAttribute("multipleSelect", externalDatasetDataEntity.getMultipleSelect().toString());
dataOut.setAttribute("type", externalDatasetDataEntity.getType().getValue());
break;
case DATA_REPOSITORIES:
@ -323,9 +331,9 @@ public class ExportXmlBuilderDatasetProfile {
case RESEARCHERS:
case PUBLICATIONS:
case ORGANIZATIONS:
LabelAndMultiplicityFieldDataXmlModel dataRepositoryDataEntity = (LabelAndMultiplicityFieldDataXmlModel) field.getData();
LabelAndMultiplicityDataXmlModel dataRepositoryDataEntity = (LabelAndMultiplicityDataXmlModel) field.getData();
dataOut.setAttribute("label", dataRepositoryDataEntity.getLabel());
dataOut.setAttribute("multiAutocomplete", dataRepositoryDataEntity.getMultiAutoComplete().toString());
dataOut.setAttribute("multipleSelect", dataRepositoryDataEntity.getMultipleSelect().toString());
break;
}