package eu.eudat.file.transformer.models.descriptiontemplate.definition.fielddata; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import eu.eudat.file.transformer.enums.FieldType; @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "fieldType", visible = true) @JsonSubTypes({ @JsonSubTypes.Type(value = ExternalSelectDataFileTransformerModel.class, name = FieldType.Names.ExternalSelect), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.BooleanDecision), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.InternalDmpDatasets), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.InternalDmpDmps), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.CheckBox), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.DatePicker), @JsonSubTypes.Type(value = ExternalDatasetDataFileTransformerModel.class, name = FieldType.Names.ExternalDatasets), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.FreeText), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Licenses), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Organizations), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Publications), @JsonSubTypes.Type(value = RadioBoxDataFileTransformerModel.class, name = FieldType.Names.RadioBox), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Registries), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.InternalDmpResearchers), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Researchers), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.RichTextarea), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Services), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.Tags), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Taxonomies), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.TextArea), @JsonSubTypes.Type(value = UploadDataFileTransformerModel.class, name = FieldType.Names.Upload), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.Validation), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.DatasetIdentifier), @JsonSubTypes.Type(value = LabelDataFileTransformerModel.class, name = FieldType.Names.Currency), @JsonSubTypes.Type(value = SelectDataFileTransformerModel.class, name = FieldType.Names.Select), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.DataRepositories), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.JournalRepositories), @JsonSubTypes.Type(value = LabelAndMultiplicityDataFileTransformerModel.class, name = FieldType.Names.Publications), }) public abstract class BaseFieldDataFileTransformerModel { private String label; private FieldType fieldType; private String value; public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public FieldType getFieldType() { return fieldType; } public void setFieldType(FieldType fieldType) { this.fieldType = fieldType; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }