argos/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/fielddata/BaseFieldDataPersist.java

70 lines
3.6 KiB
Java

package eu.eudat.model.persist.descriptiontemplatedefinition.fielddata;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import eu.eudat.commons.enums.FieldType;
import eu.eudat.commons.validation.old.ValidEnum;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "fieldType",
visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = AutoCompleteDataPersist.class, name = FieldType.Names.Autocomplete),
@JsonSubTypes.Type(value = BooleanDecisionDataPersist.class, name = FieldType.Names.BooleanDecision),
@JsonSubTypes.Type(value = DatasetAutoCompleteDataPersist.class, name = FieldType.Names.InternalDmpDatasets),
@JsonSubTypes.Type(value = DmpAutoCompleteDataPersist.class, name = FieldType.Names.InternalDmpDmps),
@JsonSubTypes.Type(value = CheckBoxDataPersist.class, name = FieldType.Names.CheckBox),
@JsonSubTypes.Type(value = DatePickerDataPersist.class, name = FieldType.Names.DatePicker),
@JsonSubTypes.Type(value = ExternalDatasetDataPersist.class, name = FieldType.Names.ExternalDatasets),
@JsonSubTypes.Type(value = FreeTextDataPersist.class, name = FieldType.Names.FreeText),
@JsonSubTypes.Type(value = LicenseDataPersist.class, name = FieldType.Names.Licenses),
@JsonSubTypes.Type(value = OrganizationDataPersist.class, name = FieldType.Names.Organizations),
@JsonSubTypes.Type(value = PublicationDataPersist.class, name = FieldType.Names.Publications),
@JsonSubTypes.Type(value = RadioBoxDataPersist.class, name = FieldType.Names.RadioBox),
@JsonSubTypes.Type(value = RegistryDataPersist.class, name = FieldType.Names.Registries),
@JsonSubTypes.Type(value = ResearcherAutoCompleteDataPersist.class, name = FieldType.Names.InternalDmpResearchers),
@JsonSubTypes.Type(value = ResearcherDataPersist.class, name = FieldType.Names.Researchers),
@JsonSubTypes.Type(value = RichTextAreaDataPersist.class, name = FieldType.Names.RichTextarea),
@JsonSubTypes.Type(value = ServiceDataPersist.class, name = FieldType.Names.Services),
@JsonSubTypes.Type(value = TagDataPersist.class, name = FieldType.Names.Tags),
@JsonSubTypes.Type(value = TaxonomyDataPersist.class, name = FieldType.Names.Taxonomies),
@JsonSubTypes.Type(value = TextAreaDataPersist.class, name = FieldType.Names.TextArea),
@JsonSubTypes.Type(value = UploadDataPersist.class, name = FieldType.Names.Upload),
@JsonSubTypes.Type(value = ValidationDataPersist.class, name = FieldType.Names.Validation),
@JsonSubTypes.Type(value = DatasetIdentifierDataPersist.class, name = FieldType.Names.DatasetIdentifier),
@JsonSubTypes.Type(value = CurrencyDataPersist.class, name = FieldType.Names.Currency),
@JsonSubTypes.Type(value = WordListDataPersist.class, name = FieldType.Names.Wordlist),
@JsonSubTypes.Type(value = DataRepositoryDataPersist.class, name = FieldType.Names.DataRepositories),
@JsonSubTypes.Type(value = JournalRepositoryDataPersist.class, name = FieldType.Names.JournalRepositories),
@JsonSubTypes.Type(value = PublicationRepositoryDataPersist.class, name = FieldType.Names.Publications),
})
public abstract class BaseFieldDataPersist {
@NotNull(message = "{validation.empty}")
@NotEmpty(message = "{validation.empty}")
private String label = null;
@ValidEnum(message = "{validation.empty}")
private FieldType fieldType;
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;
}
}