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.target>21</maven.compiler.target>
<maven.compiler.release>21</maven.compiler.release> <maven.compiler.release>21</maven.compiler.release>
<revision>1.0.0-SNAPSHOT</revision> <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> </properties>
<dependencies> <dependencies>

View File

@ -1,14 +1,16 @@
package eu.eudat.file.transformer.models.descriptiontemplate.definition; 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.enums.FieldValidationType;
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateXmlModel; import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateXmlModel;
import eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata.BaseFieldDataXmlModel; import eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata.*;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.*;
import jakarta.xml.bind.annotation.XmlType;
import java.util.List; import java.util.List;
@XmlType(namespace = "description-template") @XmlType(namespace = "description-template")
@XmlAccessorType(XmlAccessType.FIELD)
public class FieldXmlModel { public class FieldXmlModel {
private String id; private String id;
@ -19,6 +21,37 @@ public class FieldXmlModel {
private List<RuleXmlModel> visibilityRules; private List<RuleXmlModel> visibilityRules;
private List<FieldValidationType> validations; private List<FieldValidationType> validations;
private Boolean includeInExport; 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; private BaseFieldDataXmlModel data;
public String getId() { 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.XmlSeeAlso;
import jakarta.xml.bind.annotation.XmlTransient; 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 { public abstract class BaseFieldDataXmlModel {
private String label; 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; import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = FieldType.Names.ExternalDatasets) @XmlRootElement(name = FieldType.Names.ExternalDatasets)
public class ExternalDatasetDataXmlModel extends LabelAndMultiplicityFieldDataXmlModel { public class ExternalDatasetDataXmlModel extends LabelAndMultiplicityDataXmlModel {
private FieldDataExternalDatasetType type; private FieldDataExternalDatasetType type;
public FieldDataExternalDatasetType getType() { 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; package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType; import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List; import java.util.List;
@XmlRootElement(name = FieldType.Names.RadioBox) @XmlRootElement(name = FieldType.Names.RadioBox)
public class RadioBoxDataXmlModel extends BaseFieldDataXmlModel { 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; return options;
} }
public void setOptions(List<RadioBoxOptionXmlModel> options) { public void setOptions(List<RadioBoxDataOptionXmlModel> options) {
this.options = 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; package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata;
import eu.eudat.file.transformer.enums.FieldType; import eu.eudat.file.transformer.enums.FieldType;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@ -8,18 +7,40 @@ import java.util.List;
@XmlRootElement(name = FieldType.Names.Upload) @XmlRootElement(name = FieldType.Names.Upload)
public class UploadDataXmlModel extends BaseFieldDataXmlModel { 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; return types;
} }
public void setTypes(List<UploadOptionXmlModel> types) { public void setTypes(List<UploadDataOptionXmlModel> types) {
this.types = types; this.types = types;
} }
private Integer maxFileSizeInMB;
public Integer getMaxFileSizeInMB() { public Integer getMaxFileSizeInMB() {
return maxFileSizeInMB; return maxFileSizeInMB;
} }
@ -27,7 +48,4 @@ public class UploadDataXmlModel extends BaseFieldDataXmlModel {
public void setMaxFileSizeInMB(Integer maxFileSizeInMB) { public void setMaxFileSizeInMB(Integer maxFileSizeInMB) {
this.maxFileSizeInMB = 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.setDescription(fileModel.getDescription());
xmlModel.setHasTemplates(fileModel.getHasTemplates()); xmlModel.setHasTemplates(fileModel.getHasTemplates());
xmlModel.setOrdinal(fileModel.getOrdinal()); 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; return xmlModel;
} }

View File

@ -88,7 +88,9 @@ public class DescriptionTemplateXmlMapper {
if (fileModel.getData() != null) { if (fileModel.getData() != null) {
xmlModel.setData(toDataXml(fileModel.getData())); 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; return xmlModel;
} }
@ -107,8 +109,8 @@ public class DescriptionTemplateXmlMapper {
SERVICES, SERVICES,
TAXONOMIES, TAXONOMIES,
DATA_REPOSITORIES, DATA_REPOSITORIES,
JOURNAL_REPOSITORIES -> new LabelAndMultiplicityFieldDataXmlModel(); JOURNAL_REPOSITORIES -> new LabelAndMultiplicityDataXmlModel();
case AUTO_COMPLETE -> new AutoCompleteDataXmlModel(); case EXTERNAL_SELECT -> new ExternalSelectDataXmlModel();
case CHECK_BOX, case CHECK_BOX,
DATE_PICKER, DATE_PICKER,
FREE_TEXT, FREE_TEXT,
@ -117,9 +119,9 @@ public class DescriptionTemplateXmlMapper {
TEXT_AREA, TEXT_AREA,
VALIDATION, VALIDATION,
DATASET_IDENTIFIER, DATASET_IDENTIFIER,
CURRENCY -> new LabelFieldDataXmlModel(); CURRENCY -> new LabelDataXmlModel();
case UPLOAD -> new UploadDataXmlModel(); case UPLOAD -> new UploadDataXmlModel();
case WORD_LIST -> new WordListDataXmlModel(); case SELECT -> new SelectDataXmlModel();
case RADIO_BOX -> new RadioBoxDataXmlModel(); case RADIO_BOX -> new RadioBoxDataXmlModel();
case EXTERNAL_DATASETS -> new ExternalDatasetDataXmlModel(); case EXTERNAL_DATASETS -> new ExternalDatasetDataXmlModel();
default -> null; default -> null;
@ -130,23 +132,22 @@ public class DescriptionTemplateXmlMapper {
xmlModel.setFieldType(fileModel.getFieldType()); xmlModel.setFieldType(fileModel.getFieldType());
switch (xmlModel) { switch (xmlModel) {
case ExternalDatasetDataXmlModel sm -> sm.setType(((ExternalDatasetDataFileTransformerModel)fileModel).getType()); case ExternalDatasetDataXmlModel sm -> sm.setType(((ExternalDatasetDataFileTransformerModel)fileModel).getType());
case LabelAndMultiplicityFieldDataXmlModel sm -> sm.setMultiAutoComplete(((LabelAndMultiplicityFieldDataFileTransformerModel)fileModel).getMultiAutoComplete()); case ExternalSelectDataXmlModel sm -> {
case AutoCompleteDataXmlModel sm -> { ExternalSelectDataFileTransformerModel fm = ((ExternalSelectDataFileTransformerModel) fileModel);
AutoCompleteDataFileTransformerModel fm = ((AutoCompleteDataFileTransformerModel) fileModel); sm.setMultipleSelect(fm.getMultipleSelect());
sm.setMultiAutoComplete(fm.getMultiAutoComplete()); sm.setSources(fm.getSources().stream().map(FieldDataXmlMapper::toAutocompleteXml).toList());
sm.setAutoCompleteSingleDataList(fm.getAutoCompleteSingleDataList().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 -> { case UploadDataXmlModel sm -> {
UploadDataFileTransformerModel fm = ((UploadDataFileTransformerModel) fileModel); UploadDataFileTransformerModel fm = ((UploadDataFileTransformerModel) fileModel);
sm.setMaxFileSizeInMB(fm.getMaxFileSizeInMB()); sm.setMaxFileSizeInMB(fm.getMaxFileSizeInMB());
sm.setTypes(fm.getTypes().stream().map(FieldDataXmlMapper::toUploadXml).toList()); 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 -> { case RadioBoxDataXmlModel sm -> {
RadioBoxDataFileTransformerModel fm = (RadioBoxDataFileTransformerModel) fileModel; RadioBoxDataFileTransformerModel fm = (RadioBoxDataFileTransformerModel) fileModel;
sm.setOptions(fm.getOptions().stream().map(FieldDataXmlMapper::toRadioBoxXml).toList()); 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 class FieldDataXmlMapper {
public static AutoCompleteSingleDataXmlModel toAutocompleteXml(AutoCompleteSingleDataFileTransformerModel fileModel) { public static ExternalSelectDataXmlModel.ExternalSelectSourceXmlModel toAutocompleteXml(ExternalSelectDataFileTransformerModel.ExternalSelectSourceFileTransformerModel fileModel) {
AutoCompleteSingleDataXmlModel xmlModel = new AutoCompleteSingleDataXmlModel(); ExternalSelectDataXmlModel.ExternalSelectSourceXmlModel xmlModel = new ExternalSelectDataXmlModel.ExternalSelectSourceXmlModel();
xmlModel.setUrl(fileModel.getUrl()); 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; return xmlModel;
} }
public static ComboBoxOptionXmlModel toComboBoxXml(ComboBoxOptionFileTransformerModel fileModel) { private static ExternalSelectDataXmlModel.ExternalSelectAuthDataXmlModel toAuthXml(ExternalSelectDataFileTransformerModel.ExternalSelectAuthDataFileTransformerModel fileModel) {
ComboBoxOptionXmlModel xmlModel = new ComboBoxOptionXmlModel(); 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.setLabel(fileModel.getLabel());
xmlModel.setValue(fileModel.getValue()); xmlModel.setValue(fileModel.getValue());
xmlModel.setSource(fileModel.getSource()); xmlModel.setSource(fileModel.getSource());
@ -24,15 +39,24 @@ public class FieldDataXmlMapper {
return xmlModel; return xmlModel;
} }
public static UploadOptionXmlModel toUploadXml(UploadOptionFileTransformerModel fileModel) { public static SelectDataXmlModel.OptionXmlModel toSelectOptionXml(SelectDataFileTransformerModel.OptionFileTransformerModel fileModel) {
UploadOptionXmlModel xmlModel = new UploadOptionXmlModel(); 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.setLabel(fileModel.getLabel());
xmlModel.setValue(fileModel.getValue()); xmlModel.setValue(fileModel.getValue());
return xmlModel; return xmlModel;
} }
public static RadioBoxOptionXmlModel toRadioBoxXml(RadioBoxOptionFileTransformerModel fileModel) { public static RadioBoxDataXmlModel.RadioBoxDataOptionXmlModel toRadioBoxXml(RadioBoxDataFileTransformerModel.RadioBoxDataOptionFileTransformerModel fileModel) {
RadioBoxOptionXmlModel xmlModel = new RadioBoxOptionXmlModel(); RadioBoxDataXmlModel.RadioBoxDataOptionXmlModel xmlModel = new RadioBoxDataXmlModel.RadioBoxDataOptionXmlModel();
xmlModel.setLabel(fileModel.getLabel()); xmlModel.setLabel(fileModel.getLabel());
xmlModel.setValue(fileModel.getValue()); xmlModel.setValue(fileModel.getValue());
return xmlModel; return xmlModel;

View File

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