From f6d153846497c68bf8c8ebdae466acdb8485f11b Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Mon, 18 Dec 2023 10:52:59 +0200 Subject: [PATCH] Initial Commit --- .gitignore | 6 + pom.xml | 63 ++++ .../entities/common/DatabaseDefinition.java | 5 + .../common/DatabaseModelDefinition.java | 5 + .../common/DatabaseViewStyleDefinition.java | 5 + .../definition/DefinitionSerializable.java | 5 + .../descriptiontemplate/DefinitionEntity.java | 84 +++++ .../descriptiontemplate/FieldEntity.java | 270 +++++++++++++++ .../descriptiontemplate/FieldSetEntity.java | 189 +++++++++++ .../MultiplicityEntity.java | 41 +++ .../descriptiontemplate/PageEntity.java | 56 ++++ .../descriptiontemplate/RuleEntity.java | 64 ++++ .../descriptiontemplate/SectionEntity.java | 214 ++++++++++++ .../fielddata/AutoCompleteDataEntity.java | 308 ++++++++++++++++++ .../fielddata/BaseFieldDataEntity.java | 39 +++ .../fielddata/BooleanDecisionDataEntity.java | 12 + .../fielddata/CheckBoxDataEntity.java | 12 + .../fielddata/ComboBoxDataEntity.java | 96 ++++++ .../fielddata/CurrencyDataEntity.java | 11 + .../fielddata/DataRepositoryDataEntity.java | 45 +++ .../DatasetAutoCompleteDataEntity.java | 51 +++ .../DatasetIdentifierDataEntity.java | 11 + .../fielddata/DatePickerDataEntity.java | 11 + .../fielddata/DmpAutoCompleteDataEntity.java | 49 +++ .../fielddata/ExternalDatasetDataEntity.java | 60 ++++ .../fielddata/FieldDataHelper.java | 68 ++++ .../fielddata/FreeTextDataEntity.java | 11 + .../fielddata/InternalDmpBaseDataEntity.java | 29 ++ .../JournalRepositoryDataEntity.java | 46 +++ .../fielddata/LicenseDataEntity.java | 45 +++ .../fielddata/OrganizationDataEntity.java | 45 +++ .../fielddata/PublicationDataEntity.java | 43 +++ .../PublicationRepositoryDataEntity.java | 46 +++ .../fielddata/RadioBoxDataEntity.java | 114 +++++++ .../fielddata/RegistryDataEntity.java | 44 +++ .../ResearcherAutoCompleteDataEntity.java | 51 +++ .../fielddata/ResearcherDataEntity.java | 45 +++ .../fielddata/RichTextAreaDataEntity.java | 12 + .../fielddata/ServiceDataEntity.java | 45 +++ .../fielddata/TagDataEntity.java | 11 + .../fielddata/TaxonomyDataEntity.java | 45 +++ .../fielddata/TextAreaDataEntity.java | 12 + .../fielddata/UploadDataEntity.java | 132 ++++++++ .../fielddata/ValidationDataEntity.java | 11 + .../fielddata/WordListDataEntity.java | 94 ++++++ .../DescriptionTemplateImportExport.java | 57 ++++ .../importexport/FieldImportExport.java | 144 ++++++++ .../importexport/FieldSetImportExport.java | 112 +++++++ .../importexport/MultiplicityImportXml.java | 50 +++ .../importexport/PageImportExport.java | 52 +++ .../importexport/RuleImportExport.java | 29 ++ .../importexport/SectionImportExport.java | 112 +++++++ .../fielddata/AuthAutoCompleteData.java | 59 ++++ .../AutoCompleteDataImportExport.java | 30 ++ .../fielddata/AutoCompleteSingleData.java | 81 +++++ .../fielddata/BaseFieldDataImportExport.java | 13 + .../BooleanDecisionDataImportExport.java | 9 + .../fielddata/CheckBoxDataImportExport.java | 8 + .../fielddata/ComboBoxDataOptionEntity.java | 48 +++ .../fielddata/CurrencyDataImportExport.java | 8 + .../DataRepositoryDataImportExport.java | 21 ++ .../DatasetAutoCompleteDataImportExport.java | 19 ++ .../DatasetIdentifierDataImportExport.java | 9 + .../fielddata/DatePickerDataImportExport.java | 9 + .../DmpAutoCompleteDataImportExport.java | 19 ++ .../ExternalDatasetDataImportExport.java | 30 ++ .../fielddata/FreeTextDataImportExport.java | 9 + .../JournalRepositoryDataImportExport.java | 20 ++ .../fielddata/LicenseDataImportExport.java | 20 ++ .../OrganizationDataImportExport.java | 19 ++ .../PublicationDataImportExport.java | 20 ++ ...PublicationRepositoryDataImportExport.java | 20 ++ .../fielddata/RadioBoxDataImportExport.java | 22 ++ .../fielddata/RadioBoxOption.java | 29 ++ .../fielddata/RegistryDataImportExport.java | 20 ++ ...esearcherAutoCompleteDataImportExport.java | 19 ++ .../fielddata/ResearcherDataImportExport.java | 20 ++ .../RichTextAreaDataImportExport.java | 9 + .../fielddata/ServiceDataImportExport.java | 19 ++ .../fielddata/TagDataImportExport.java | 8 + .../fielddata/TaxonomyDataImportExport.java | 19 ++ .../fielddata/TextAreaDataImportExport.java | 9 + .../fielddata/UploadDataImportExport.java | 34 ++ .../fielddata/UploadDataOption.java | 29 ++ .../fielddata/ValidationDataImportExport.java | 8 + .../fielddata/WordListDataImportExport.java | 33 ++ .../todelete/DefaultValueEntity.java | 24 ++ .../todelete/FieldDescriptionEntity.java | 26 ++ .../todelete/VisibilityEntity.java | 58 ++++ .../user/components/commons/Rule.java | 49 +++ .../user/components/datasetprofile/Field.java | 305 +++++++++++++++++ .../components/datasetprofile/FieldSet.java | 222 +++++++++++++ .../components/datasetprofile/Section.java | 166 ++++++++++ .../user/composite/DatasetProfile.java | 97 ++++++ .../user/composite/DatasetProfilePage.java | 36 ++ .../user/composite/PagedDatasetProfile.java | 67 ++++ .../composite/PropertiesModelBuilder.java | 12 + .../transformer/entities/xml/XmlBuilder.java | 87 +++++ .../entities/xml/XmlSerializable.java | 11 + .../transformer/enums/ContactInfoType.java | 29 ++ .../file/transformer/enums/DatabaseEnum.java | 8 + .../transformer/enums/DescriptionStatus.java | 30 ++ .../enums/DescriptionTemplateStatus.java | 29 ++ .../enums/DescriptionTemplateTypeStatus.java | 29 ++ .../DescriptionTemplateVersionStatus.java | 29 ++ .../file/transformer/enums/DmpAccessType.java | 29 ++ .../enums/DmpBlueprintExtraFieldDataType.java | 32 ++ .../enums/DmpBlueprintFieldCategory.java | 27 ++ .../transformer/enums/DmpBlueprintStatus.java | 29 ++ .../enums/DmpBlueprintSystemFieldType.java | 36 ++ .../file/transformer/enums/DmpStatus.java | 30 ++ .../file/transformer/enums/DmpUserRole.java | 29 ++ .../transformer/enums/DmpVersionStatus.java | 29 ++ .../file/transformer/enums/EntityType.java | 29 ++ .../file/transformer/enums/EnumUtils.java | 14 + .../enums/FieldDataComboBoxType.java | 26 ++ .../enums/FieldDataExternalDatasetType.java | 27 ++ .../enums/FieldDataInternalDmpEntryType.java | 27 ++ .../file/transformer/enums/FieldType.java | 87 +++++ .../enums/FieldValidationType.java | 30 ++ .../file/transformer/enums/IsActive.java | 29 ++ .../file/transformer/enums/ProviderType.java | 34 ++ .../enums/ReferenceFieldDataType.java | 26 ++ .../enums/ReferenceSourceType.java | 26 ++ .../file/transformer/enums/ReferenceType.java | 38 +++ ...eferenceTypeExternalApiHTTPMethodType.java | 29 ++ .../enums/ReferenceTypeSourceType.java | 34 ++ .../enums/StorageFilePermission.java | 29 ++ .../file/transformer/enums/StorageType.java | 29 ++ .../enums/SupportiveMaterialFieldType.java | 29 ++ .../enums/UserDescriptionTemplateRole.java | 29 ++ .../transformer/enums/UserSettingsType.java | 29 ++ .../enums/old/notification/ActiveStatus.java | 27 ++ .../enums/old/notification/ContactType.java | 24 ++ .../old/notification/NotificationType.java | 39 +++ .../enums/old/notification/NotifyState.java | 36 ++ .../executor/FileTransformerExecutor.java | 21 ++ .../DescriptionFileTransformerModel.java | 207 ++++++++++++ .../model/DescriptionReference.java | 94 ++++++ .../transformer/model/DescriptionTag.java | 95 ++++++ .../model/DescriptionTemplate.java | 180 ++++++++++ .../model/DescriptionTemplateType.java | 101 ++++++ .../file/transformer/model/DmpBlueprint.java | 105 ++++++ .../model/DmpDescriptionTemplate.java | 132 ++++++++ .../model/DmpFileTransformerModel.java | 289 ++++++++++++++++ .../file/transformer/model/DmpReference.java | 80 +++++ .../eudat/file/transformer/model/DmpUser.java | 106 ++++++ .../file/transformer/model/EntityDoi.java | 121 +++++++ .../model/ExtraPropertiesModel.java | 16 + .../file/transformer/model/Language.java | 99 ++++++ .../transformer/model/PublicDescription.java | 121 +++++++ .../model/PublicDescriptionTemplate.java | 41 +++ .../file/transformer/model/PublicDmp.java | 107 ++++++ .../model/PublicDmpDescriptionTemplate.java | 30 ++ .../transformer/model/PublicDmpReference.java | 38 +++ .../file/transformer/model/PublicDmpUser.java | 54 +++ .../transformer/model/PublicReference.java | 60 ++++ .../file/transformer/model/PublicUser.java | 29 ++ .../file/transformer/model/Reference.java | 180 ++++++++++ .../file/transformer/model/ReferenceType.java | 100 ++++++ .../file/transformer/model/StorageFile.java | 132 ++++++++ .../transformer/model/SupportiveMaterial.java | 100 ++++++ .../eu/eudat/file/transformer/model/Tag.java | 95 ++++++ .../eudat/file/transformer/model/Tenant.java | 110 +++++++ .../transformer/model/UserAdditionalInfo.java | 72 ++++ .../transformer/model/UserContactInfo.java | 77 +++++ .../transformer/model/UserCredential.java | 54 +++ .../model/UserDescriptionTemplate.java | 100 ++++++ .../file/transformer/model/UserFileModel.java | 130 ++++++++ .../file/transformer/model/UserRole.java | 55 ++++ .../file/transformer/model/UserSettings.java | 99 ++++++ .../model/datasetprofile/Field.java | 158 +++++++++ .../model/datasetprofile/FieldSet.java | 142 ++++++++ .../model/datasetprofile/Page.java | 55 ++++ .../model/datasetprofile/Section.java | 154 +++++++++ .../model/descriptionproperties/Field.java | 29 ++ .../PropertyDefinition.java | 17 + .../Definition.java | 28 ++ .../descriptiontemplatedefinition/Field.java | 108 ++++++ .../FieldSet.java | 116 +++++++ .../Multiplicity.java | 50 +++ .../descriptiontemplatedefinition/Page.java | 42 +++ .../descriptiontemplatedefinition/Rule.java | 29 ++ .../Section.java | 130 ++++++++ .../fielddata/AuthAutoCompleteData.java | 54 +++ .../fielddata/AutoCompleteData.java | 22 ++ .../fielddata/AutoCompleteSingleData.java | 76 +++++ .../fielddata/BaseFieldData.java | 65 ++++ .../fielddata/BooleanDecisionData.java | 5 + .../fielddata/CheckBoxData.java | 6 + .../fielddata/ComboBoxOption.java | 46 +++ .../fielddata/CurrencyData.java | 5 + .../fielddata/DataRepositoryData.java | 14 + .../fielddata/DatasetAutoCompleteData.java | 13 + .../fielddata/DatasetIdentifierData.java | 6 + .../fielddata/DatePickerData.java | 4 + .../fielddata/DmpAutoCompleteData.java | 13 + .../fielddata/ExternalDatasetData.java | 27 ++ .../fielddata/FreeTextData.java | 4 + .../fielddata/JournalRepositoryData.java | 14 + .../fielddata/LicenseData.java | 15 + .../fielddata/OrganizationData.java | 15 + .../fielddata/PublicationData.java | 16 + .../fielddata/PublicationRepositoryData.java | 14 + .../fielddata/RadioBoxData.java | 19 ++ .../fielddata/RadioBoxOption.java | 24 ++ .../fielddata/RegistryData.java | 16 + .../fielddata/ResearcherAutoCompleteData.java | 13 + .../fielddata/ResearcherData.java | 16 + .../fielddata/RichTextAreaData.java | 7 + .../fielddata/ServiceData.java | 15 + .../fielddata/TagData.java | 5 + .../fielddata/TaxonomyData.java | 16 + .../fielddata/TextAreaData.java | 5 + .../fielddata/UploadData.java | 30 ++ .../fielddata/UploadOption.java | 24 ++ .../fielddata/ValidationData.java | 5 + .../fielddata/WordListData.java | 26 ++ .../dmpblueprintdefinition/Definition.java | 17 + .../DescriptionTemplate.java | 61 ++++ .../dmpblueprintdefinition/ExtraField.java | 17 + .../model/dmpblueprintdefinition/Field.java | 96 ++++++ .../model/dmpblueprintdefinition/Section.java | 87 +++++ .../dmpblueprintdefinition/SystemField.java | 17 + .../transformer/model/doi/DepositCode.java | 21 ++ .../transformer/model/doi/DepositRequest.java | 29 ++ .../eudat/file/transformer/model/doi/Doi.java | 81 +++++ .../transformer/model/file/FileEnvelope.java | 25 ++ .../model/properties/DatasetProfilePage.java | 34 ++ .../transformer/model/properties/Field.java | 35 ++ .../model/properties/FieldSet.java | 62 ++++ .../transformer/model/properties/Group.java | 29 ++ .../model/properties/PropertiesGenerator.java | 9 + .../model/properties/PropertiesModel.java | 37 +++ .../transformer/model/properties/Section.java | 38 +++ .../model/referencedefinition/Definition.java | 17 + .../model/referencedefinition/Field.java | 39 +++ .../AuthenticationConfiguration.java | 77 +++++ .../DependencyProperty.java | 38 +++ .../referencetypedefinition/QueryConfig.java | 50 +++ .../ReferenceTypeDefinition.java | 28 ++ .../ReferenceTypeField.java | 51 +++ .../ReferenceTypeSourceBaseConfiguration.java | 64 ++++ .../ReferenceTypeSourceBaseDependency.java | 52 +++ ...nceTypeSourceExternalApiConfiguration.java | 120 +++++++ ...ceTypeSourceStaticOptionConfiguration.java | 18 + .../ReferenceTypeStaticOption.java | 26 ++ .../ResultFieldsMappingConfiguration.java | 29 ++ .../ResultsConfiguration.java | 29 ++ .../transformer/model/result/QueryResult.java | 53 +++ .../model/tenantconfig/TenantConfig.java | 28 ++ .../tenantconfig/TenantDepositConfig.java | 17 + .../TenantFileTransformersConfig.java | 17 + .../model/tenantconfig/TenantSource.java | 73 +++++ .../utils/builders/ModelBuilder.java | 59 ++++ .../utils/helpers/LabelBuilder.java | 25 ++ .../utils/helpers/LabelGenerator.java | 6 + .../transformer/utils/helpers/ListHelper.java | 14 + .../utils/helpers/ModelBuilderCollector.java | 47 +++ .../utils/helpers/ModelSerializer.java | 7 + .../utils/helpers/MyStringUtils.java | 38 +++ .../utils/helpers/StreamDistinctBy.java | 15 + .../utils/interfaces/ModelDefinition.java | 9 + .../utils/interfaces/ViewStyleDefinition.java | 9 + 264 files changed, 13141 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/eu/eudat/file/transformer/entities/common/DatabaseDefinition.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/common/DatabaseModelDefinition.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/common/DatabaseViewStyleDefinition.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/definition/DefinitionSerializable.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/DefinitionEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldSetEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/MultiplicityEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/PageEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/RuleEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/SectionEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/AutoCompleteDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BaseFieldDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BooleanDecisionDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CheckBoxDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ComboBoxDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CurrencyDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DataRepositoryDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetAutoCompleteDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetIdentifierDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatePickerDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DmpAutoCompleteDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ExternalDatasetDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FieldDataHelper.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FreeTextDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/InternalDmpBaseDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/JournalRepositoryDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/LicenseDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/OrganizationDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationRepositoryDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/RadioBoxDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/RegistryDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ResearcherAutoCompleteDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ResearcherDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/RichTextAreaDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ServiceDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/TagDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/TaxonomyDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/TextAreaDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/UploadDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ValidationDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/WordListDataEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/DescriptionTemplateImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/FieldImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/FieldSetImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/MultiplicityImportXml.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/PageImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/RuleImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/SectionImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/AuthAutoCompleteData.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/AutoCompleteDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/AutoCompleteSingleData.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/BaseFieldDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/BooleanDecisionDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/CheckBoxDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/ComboBoxDataOptionEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/CurrencyDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/DataRepositoryDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/DatasetAutoCompleteDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/DatasetIdentifierDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/DatePickerDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/DmpAutoCompleteDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/ExternalDatasetDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/FreeTextDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/JournalRepositoryDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/LicenseDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/OrganizationDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/PublicationDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/PublicationRepositoryDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/RadioBoxDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/RadioBoxOption.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/RegistryDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/ResearcherAutoCompleteDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/ResearcherDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/RichTextAreaDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/ServiceDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/TagDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/TaxonomyDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/TextAreaDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/UploadDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/UploadDataOption.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/ValidationDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/importexport/fielddata/WordListDataImportExport.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/todelete/DefaultValueEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/todelete/FieldDescriptionEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/todelete/VisibilityEntity.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/components/commons/Rule.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/components/datasetprofile/Field.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/components/datasetprofile/FieldSet.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/components/datasetprofile/Section.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/composite/DatasetProfile.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/composite/DatasetProfilePage.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/composite/PagedDatasetProfile.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/user/composite/PropertiesModelBuilder.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/xml/XmlBuilder.java create mode 100644 src/main/java/eu/eudat/file/transformer/entities/xml/XmlSerializable.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/ContactInfoType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DatabaseEnum.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DescriptionStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DescriptionTemplateStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DescriptionTemplateTypeStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DescriptionTemplateVersionStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpAccessType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpBlueprintExtraFieldDataType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpBlueprintFieldCategory.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpBlueprintStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpBlueprintSystemFieldType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpUserRole.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/DmpVersionStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/EntityType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/EnumUtils.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/FieldDataComboBoxType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/FieldDataExternalDatasetType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/FieldDataInternalDmpEntryType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/FieldType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/FieldValidationType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/IsActive.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/ProviderType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/ReferenceFieldDataType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/ReferenceSourceType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/ReferenceType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/ReferenceTypeExternalApiHTTPMethodType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/ReferenceTypeSourceType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/StorageFilePermission.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/StorageType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/SupportiveMaterialFieldType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/UserDescriptionTemplateRole.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/UserSettingsType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/old/notification/ActiveStatus.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/old/notification/ContactType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/old/notification/NotificationType.java create mode 100644 src/main/java/eu/eudat/file/transformer/enums/old/notification/NotifyState.java create mode 100644 src/main/java/eu/eudat/file/transformer/executor/FileTransformerExecutor.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DescriptionFileTransformerModel.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DescriptionReference.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DescriptionTag.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DescriptionTemplate.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DescriptionTemplateType.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DmpBlueprint.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DmpDescriptionTemplate.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DmpFileTransformerModel.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DmpReference.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/DmpUser.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/EntityDoi.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/ExtraPropertiesModel.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/Language.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicDescription.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicDescriptionTemplate.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicDmp.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicDmpDescriptionTemplate.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicDmpReference.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicDmpUser.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicReference.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/PublicUser.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/Reference.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/ReferenceType.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/StorageFile.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/SupportiveMaterial.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/Tag.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/Tenant.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/UserAdditionalInfo.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/UserContactInfo.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/UserCredential.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/UserDescriptionTemplate.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/UserFileModel.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/UserRole.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/UserSettings.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/datasetprofile/Field.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/datasetprofile/FieldSet.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/datasetprofile/Page.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/datasetprofile/Section.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptionproperties/Field.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptionproperties/PropertyDefinition.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/Definition.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/Field.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/FieldSet.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/Multiplicity.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/Page.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/Rule.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/Section.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/AuthAutoCompleteData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/AutoCompleteData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/AutoCompleteSingleData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/BaseFieldData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/BooleanDecisionData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/CheckBoxData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/ComboBoxOption.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/CurrencyData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/DataRepositoryData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/DatasetAutoCompleteData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/DatasetIdentifierData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/DatePickerData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/DmpAutoCompleteData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/ExternalDatasetData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/FreeTextData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/JournalRepositoryData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/LicenseData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/OrganizationData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/PublicationData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/PublicationRepositoryData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/RadioBoxData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/RadioBoxOption.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/RegistryData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/ResearcherAutoCompleteData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/ResearcherData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/RichTextAreaData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/ServiceData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/TagData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/TaxonomyData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/TextAreaData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/UploadData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/UploadOption.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/ValidationData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/descriptiontemplatedefinition/fielddata/WordListData.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/dmpblueprintdefinition/Definition.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/dmpblueprintdefinition/DescriptionTemplate.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/dmpblueprintdefinition/ExtraField.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/dmpblueprintdefinition/Field.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/dmpblueprintdefinition/Section.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/dmpblueprintdefinition/SystemField.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/doi/DepositCode.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/doi/DepositRequest.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/doi/Doi.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/file/FileEnvelope.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/properties/DatasetProfilePage.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/properties/Field.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/properties/FieldSet.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/properties/Group.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/properties/PropertiesGenerator.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/properties/PropertiesModel.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/properties/Section.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencedefinition/Definition.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencedefinition/Field.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/AuthenticationConfiguration.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/DependencyProperty.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/QueryConfig.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ReferenceTypeDefinition.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ReferenceTypeField.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ReferenceTypeSourceBaseConfiguration.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ReferenceTypeSourceBaseDependency.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ReferenceTypeSourceExternalApiConfiguration.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ReferenceTypeSourceStaticOptionConfiguration.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ReferenceTypeStaticOption.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ResultFieldsMappingConfiguration.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/referencetypedefinition/ResultsConfiguration.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/result/QueryResult.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/tenantconfig/TenantConfig.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/tenantconfig/TenantDepositConfig.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/tenantconfig/TenantFileTransformersConfig.java create mode 100644 src/main/java/eu/eudat/file/transformer/model/tenantconfig/TenantSource.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/builders/ModelBuilder.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/helpers/LabelBuilder.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/helpers/LabelGenerator.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/helpers/ListHelper.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/helpers/ModelBuilderCollector.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/helpers/ModelSerializer.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/helpers/MyStringUtils.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/helpers/StreamDistinctBy.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/interfaces/ModelDefinition.java create mode 100644 src/main/java/eu/eudat/file/transformer/utils/interfaces/ViewStyleDefinition.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d7985aa --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# Default ignored files +/shelf/ +/workspace.xml +.idea +*.class +target diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e14d2ec --- /dev/null +++ b/pom.xml @@ -0,0 +1,63 @@ + + + 4.0.0 + + gr.cite.opendmp + file-transformer-base + 1.0-SNAPSHOT + + + 21 + 21 + 21 + UTF-8 + + + + + com.fasterxml.jackson.core + jackson-core + 2.15.2 + + + com.fasterxml.jackson.core + jackson-annotations + 2.15.2 + + + com.fasterxml.jackson.core + jackson-databind + 2.15.2 + + + jakarta.validation + jakarta.validation-api + 3.0.2 + + + jakarta.xml.bind + jakarta.xml.bind-api + 4.0.0 + + + org.glassfish.jaxb + jaxb-core + 4.0.3 + + + org.slf4j + slf4j-api + 2.0.7 + + + org.apache.commons + commons-lang3 + 3.12.0 + + + + + + \ No newline at end of file diff --git a/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseDefinition.java b/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseDefinition.java new file mode 100644 index 0000000..1439b57 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseDefinition.java @@ -0,0 +1,5 @@ +package eu.eudat.file.transformer.entities.common; + + +public interface DatabaseDefinition { +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseModelDefinition.java b/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseModelDefinition.java new file mode 100644 index 0000000..952da94 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseModelDefinition.java @@ -0,0 +1,5 @@ +package eu.eudat.file.transformer.entities.common; + +public interface DatabaseModelDefinition extends DatabaseDefinition { + +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseViewStyleDefinition.java b/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseViewStyleDefinition.java new file mode 100644 index 0000000..18b85de --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/common/DatabaseViewStyleDefinition.java @@ -0,0 +1,5 @@ +package eu.eudat.file.transformer.entities.common; + +public interface DatabaseViewStyleDefinition extends DatabaseDefinition { + +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/definition/DefinitionSerializable.java b/src/main/java/eu/eudat/file/transformer/entities/definition/DefinitionSerializable.java new file mode 100644 index 0000000..3ea37aa --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/definition/DefinitionSerializable.java @@ -0,0 +1,5 @@ +package eu.eudat.file.transformer.entities.definition; + +public interface DefinitionSerializable { + T fromDefinition(U object); +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/DefinitionEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/DefinitionEntity.java new file mode 100644 index 0000000..ba68c90 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/DefinitionEntity.java @@ -0,0 +1,84 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate; + +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlBuilder; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Definition; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Page; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Section; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +public class DefinitionEntity implements DefinitionSerializable { + private List sections; + private List pages; + + public List getSections() { + return sections; + } + + public void setSections(List sections) { + this.sections = sections; + } + + public List getPages() { + return pages; + } + + public void setPages(List pageEntities) { + this.pages = pageEntities; + } + + /*@Override + public Element toXml(Document doc) { + Element root = doc.createElement("root"); + Element sections = doc.createElement("sections"); + Element pages = doc.createElement("pages"); + for (SectionEntity sectionEntity : this.sections) { + sectionEntity.setNumbering("" + (this.sections.indexOf(sectionEntity) + 1)); + sections.appendChild(sectionEntity.toXml(doc)); + } + + for (PageEntity pageEntity : this.pages) { + pages.appendChild(pageEntity.toXml(doc)); + } + + root.appendChild(pages); + root.appendChild(sections); + return root; + }*/ + public List getFieldById(String id){ + List fieldEntities = new ArrayList<>(); + if (id == null || id.isBlank()) return fieldEntities; + if (this.getSections() != null){ + for (SectionEntity sectionEntity: this.getSections()) { + fieldEntities.addAll(sectionEntity.getFieldById(id)); + } + } + return fieldEntities; + } + + @Override + public DefinitionEntity fromDefinition(Definition object) { + this.sections = new LinkedList(); + if (object.getSections() != null) { + for (Section section : object.getSections()) { + this.sections.add(new SectionEntity().fromDefinition(section)); + } + } + if (object.getPages() != null) { + this.pages = new LinkedList<>(); + for (Page page: object.getPages()) { + this.pages.add(new PageEntity().fromDefinition(page)); + + } + } + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldEntity.java new file mode 100644 index 0000000..8f2aef0 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldEntity.java @@ -0,0 +1,270 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate; + +import eu.eudat.file.transformer.entities.common.DatabaseViewStyleDefinition; +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.descriptiontemplate.fielddata.BaseFieldDataEntity; +import eu.eudat.file.transformer.entities.descriptiontemplate.fielddata.FieldDataHelper; +import eu.eudat.file.transformer.entities.xml.XmlBuilder; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.enums.FieldValidationType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Field; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Rule; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.BaseFieldData; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.LinkedList; +import java.util.List; + +public class FieldEntity implements DatabaseViewStyleDefinition, DefinitionSerializable { + private String id; + private int ordinal; + private List schematics; + private String numbering; + private String defaultValue; + private List visibilityRules; + private BaseFieldDataEntity data; + private List validations; + private Boolean includeInExport; + + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + + public int getOrdinal() { + return ordinal; + } + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + + public List getSchematics() { + return schematics; + } + public void setSchematics(List schematics) { + this.schematics = schematics; + } + + public BaseFieldDataEntity getData() { + return data; + } + public void setData(BaseFieldDataEntity data) { + this.data = data; + } + + public String getDefaultValue() { + return defaultValue; + } + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + + public List getValidations() { + return validations; + } + public void setValidations(List validations) { + this.validations = validations; + } + + public String getNumbering() { + return numbering; + } + public void setNumbering(String numbering) { + this.numbering = numbering; + } + + public Boolean getIncludeInExport() { + return includeInExport; + } + + public void setIncludeInExport(Boolean includeInExport) { + this.includeInExport = includeInExport; + } + + public List getVisibilityRules() { + return visibilityRules; + } + + public void setVisibilityRules(List visibilityRules) { + this.visibilityRules = visibilityRules; + } + + /*@Override + public Element toXml(Document doc) { + Element rootElement = doc.createElement("field"); + rootElement.setAttribute("id", this.id); + rootElement.setAttribute("ordinal", "" + this.ordinal); + + Element schematics = doc.createElement("schematics"); + if (this.schematics != null) { + for (String s : this.schematics) { + Element schematic = doc.createElement("schematic"); + schematic.setTextContent(s); + schematics.appendChild(schematic); + } + } + + Element viewStyle = doc.createElement("viewStyle"); + if (this.data != null) { + switch (this.data.getFieldType()){ + case COMBO_BOX: + case AUTO_COMPLETE: + case WORD_LIST:{ + viewStyle.setAttribute("renderstyle", FieldType.COMBO_BOX.getValue()); + break; + } + case INTERNAL_DMP_ENTRIES: + case INTERNAL_DMP_ENTRIES_DMPS: + case INTERNAL_DMP_ENTRIES_DATASETS: + case INTERNAL_DMP_ENTRIES_RESEARCHERS:{ + viewStyle.setAttribute("renderstyle", FieldType.INTERNAL_DMP_ENTRIES.getValue()); + break; + } + case BOOLEAN_DECISION: viewStyle.setAttribute("renderstyle", this.data.getFieldType().getValue()); + } + + } + Element visibilityRulesElement = doc.createElement("visible"); + if (this.visibilityRules != null && !this.visibilityRules.isEmpty()) { + for (RuleEntity rule : this.visibilityRules) { + visibilityRulesElement.appendChild(rule.toXml(doc)); + } + } + Element defaultValue = doc.createElement("defaultValue"); + defaultValue.setAttribute("value", this.getDefaultValue()); + + Element validations = doc.createElement("validations"); + for (FieldValidationType validationType : this.validations) { + Element validation = doc.createElement("validation"); + validation.setAttribute("type", "" + validationType.getValue()); + validations.appendChild(validation); + } + + Element numbering = doc.createElement("numbering"); + numbering.setTextContent(this.numbering); + + rootElement.appendChild(schematics); + rootElement.appendChild(numbering); + rootElement.appendChild(validations); + rootElement.appendChild(defaultValue); + rootElement.appendChild(visibilityRulesElement); + rootElement.appendChild(viewStyle); + if (this.data != null) { + rootElement.appendChild(this.data.toXml(doc)); + + } + rootElement.setAttribute("export", this.includeInExport == null || this.includeInExport ? "true" : "false"); + return rootElement; + }*/ + + /*@Override + public FieldEntity fromXml(Element element) { + this.id = element.getAttribute("id"); + this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); + + + Element viewStyle = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "viewStyle"); + + FieldType fieldType = FieldType.of(viewStyle.getAttribute("renderstyle")); + + Element visibility = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "visible"); + NodeList rulesElements = visibility.getChildNodes(); + this.visibilityRules = new LinkedList(); + for (int temp = 0; temp < rulesElements.getLength(); temp++) { + Node ruleElement = rulesElements.item(temp); + if (ruleElement.getNodeType() == Node.ELEMENT_NODE) { + this.visibilityRules.add(new RuleEntity().fromXml((Element) ruleElement)); + } + } + + Element numbering = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "numbering"); + if (numbering != null) this.numbering = numbering.getTextContent(); + + this.schematics = new LinkedList<>(); + Element schematics = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "schematics"); + if(schematics != null){ + NodeList schematicElements = schematics.getChildNodes(); + for (int temp = 0; temp < schematicElements.getLength(); temp++) { + Node schematicElement = schematicElements.item(temp); + if (schematicElement.getNodeType() == Node.ELEMENT_NODE) { + this.schematics.add(schematicElement.getTextContent()); + } + } + } + + Element dataElement = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "data"); + + Element defaultValue = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "defaultValue"); + + this.defaultValue = defaultValue.getAttribute("value"); + String subType = dataElement != null ? dataElement.getAttribute("type") : null; + this.data = new FieldDataHelper().create(fieldType, subType); + if (this.data != null) this.data.fromXml(dataElement); + + this.validations = new LinkedList<>(); + Element validations = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "validations"); + if (validations != null) { + NodeList validationElements = validations.getChildNodes(); + for (int temp = 0; temp < validationElements.getLength(); temp++) { + Node validationElement = validationElements.item(temp); + if (validationElement.getNodeType() == Node.ELEMENT_NODE) { + Short enumValue = Short.parseShort(((Element) validationElement).getAttribute("type")); + FieldValidationType validationType = FieldValidationType.of(enumValue); + this.validations.add(validationType); + } + } + } + if (element.hasAttribute("export")) { + this.includeInExport = Boolean.parseBoolean(element.getAttribute("export")); + } else { + this.includeInExport = true; + } + return this; + }*/ + + @Override + public FieldEntity fromDefinition(Field object) { + this.id = object.getId(); + this.ordinal = object.getOrdinal(); + this.visibilityRules = new LinkedList(); + if (object.getVisibilityRules() != null) { + for (Rule rule : object.getVisibilityRules()) { + this.visibilityRules.add(new RuleEntity().fromDefinition(rule)); + } + } + + this.numbering = object.getNumbering(); + + this.schematics = new LinkedList<>(); + if(object.getSchematics() != null){ + this.schematics.addAll(object.getSchematics()); + } + + this.defaultValue = object.getDefaultValue(); + + FieldType fieldType = switch (object.getData().getFieldType()) { + case AUTO_COMPLETE, WORD_LIST -> FieldType.COMBO_BOX; + case INTERNAL_DMP_ENTRIES_DMPS, INTERNAL_DMP_ENTRIES_DATASETS, INTERNAL_DMP_ENTRIES_RESEARCHERS -> FieldType.INTERNAL_DMP_ENTRIES; + default -> object.getData().getFieldType(); + }; + String subType = object.getData().getFieldType().getValue(); + this.data = (BaseFieldDataEntity) new FieldDataHelper().create(fieldType, subType); + if (this.data != null) this.data.fromDefinition(object.getData()); + + this.validations = new LinkedList<>(); + if (object.getValidations() != null) { + this.validations.addAll(object.getValidations()); + } + if (object.getIncludeInExport() != null) { + this.includeInExport = object.getIncludeInExport(); + } else { + this.includeInExport = true; + } + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldSetEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldSetEntity.java new file mode 100644 index 0000000..6d5648a --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/FieldSetEntity.java @@ -0,0 +1,189 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate; +import eu.eudat.file.transformer.entities.common.DatabaseViewStyleDefinition; +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlBuilder; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Field; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.FieldSet; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +public class FieldSetEntity implements DatabaseViewStyleDefinition, DefinitionSerializable { + private String id; + private int ordinal; + private List fields; + private String numbering; + private String title; + private String description; + private String extendedDescription; + private String additionalInformation; + private MultiplicityEntity multiplicity; + private boolean hasCommentField; +// private String commentFieldValue; //TODO: DescriptionTemplate + + public List getFields() { + return fields; + } + public void setFields(List fieldEntities) { + this.fields = fieldEntities; + } + + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + + public int getOrdinal() { + return ordinal; + } + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + + public String getExtendedDescription() { + return extendedDescription; + } + public void setExtendedDescription(String extendedDescription) { + this.extendedDescription = extendedDescription; + } + + public MultiplicityEntity getMultiplicity() { + return multiplicity; + } + public void setMultiplicity(MultiplicityEntity multiplicity) { + this.multiplicity = multiplicity; + } + + public boolean getHasCommentField() { + return hasCommentField; + } + public void setHasCommentField(boolean hasCommentField) { + this.hasCommentField = hasCommentField; + } + +// public String getCommentFieldValue() { +// return commentFieldValue; +// } +// public void setCommentFieldValue(String commentFieldValue) { +// this.commentFieldValue = commentFieldValue; +// } + + public String getNumbering() { + return numbering; + } + public void setNumbering(String numbering) { + this.numbering = numbering; + } + + public String getAdditionalInformation() { + return additionalInformation; + } + public void setAdditionalInformation(String additionalInformation) { + this.additionalInformation = additionalInformation; + } + +/* @Override + public Element toXml(Document doc) { + Element fieldSet = doc.createElement("fieldSet"); + fieldSet.setAttribute("id", this.id); + fieldSet.setAttribute("ordinal", "" + this.ordinal); + Element title = doc.createElement("title"); + title.setTextContent(this.title); + + Element description = doc.createElement("description"); + description.setTextContent(this.description); + + Element extendedDescription = doc.createElement("extendedDescription"); + extendedDescription.setTextContent(this.extendedDescription); + + Element additionalInformation = doc.createElement("additionalInformation"); + additionalInformation.setTextContent(this.additionalInformation); + + Element multiplicity = doc.createElement("multiplicity"); + multiplicity.setAttribute("min", "" + this.multiplicity.getMin()); + multiplicity.setAttribute("max", "" + this.multiplicity.getMax()); + multiplicity.setAttribute("placeholder", this.multiplicity.getPlaceholder()); + multiplicity.setAttribute("tableView", String.valueOf(this.multiplicity.getTableView())); + + Element commentField = doc.createElement("commentField"); + commentField.setAttribute("hasCommentField", "" + this.hasCommentField); +// commentField.setAttribute("commentFieldValue", this.commentFieldValue); + + Element numbering = doc.createElement("numbering"); + numbering.setTextContent(this.numbering); + + Element fieldsElement = doc.createElement("fields"); + for (FieldEntity fieldEntity : fields) { + fieldEntity.setNumbering(this.numbering + "." + (this.fields.indexOf(fieldEntity) + 1)); + fieldsElement.appendChild(fieldEntity.toXml(doc)); + } + + fieldSet.appendChild(numbering); + fieldSet.appendChild(commentField); + fieldSet.appendChild(fieldsElement); + fieldSet.appendChild(multiplicity); + fieldSet.appendChild(title); + fieldSet.appendChild(description); + fieldSet.appendChild(extendedDescription); + fieldSet.appendChild(additionalInformation); + return fieldSet; + }*/ + + public List getFieldById(String id){ + if (this.getFields() == null || id == null || id.isBlank()) return new ArrayList<>(); + + return this.getFields().stream().filter(x-> id.equals(x.getId())).toList(); + } + + @Override + public FieldSetEntity fromDefinition(FieldSet object) { + this.id = object.getId(); + this.ordinal = object.getOrdinal(); + this.fields = new LinkedList(); + this.title = object.getTitle(); + this.description = object.getDescription(); + this.extendedDescription = object.getExtendedDescription(); + if (object.getAdditionalInformation() != null) + this.additionalInformation = object.getAdditionalInformation(); + this.hasCommentField = object.getHasCommentField(); +// this.commentFieldValue = commentField.getAttribute("commentFieldValue"); + this.numbering = object.getNumbering(); + + if (object.getFields() != null) { + for (Field field: object.getFields()) { + this.fields.add(new FieldEntity().fromDefinition(field)); + } + } + + if (object.getMultiplicity() != null) { + this.multiplicity = new MultiplicityEntity(); + this.multiplicity.setMin(object.getMultiplicity().getMin()); + this.multiplicity.setMax(object.getMultiplicity().getMax()); + this.multiplicity.setPlaceholder(object.getMultiplicity().getPlaceholder()); + this.multiplicity.setTableView(object.getMultiplicity().getTableView()); + } + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/MultiplicityEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/MultiplicityEntity.java new file mode 100644 index 0000000..1d508f9 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/MultiplicityEntity.java @@ -0,0 +1,41 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate; + +public class MultiplicityEntity { + + private int min; + private int max; + private String placeholder; + private boolean tableView; + + public int getMin() { + return min; + } + + public void setMin(int min) { + this.min = min; + } + + public int getMax() { + return max; + } + + public void setMax(int max) { + this.max = max; + } + + public String getPlaceholder() { + return placeholder; + } + + public void setPlaceholder(String placeholder) { + this.placeholder = placeholder; + } + + public boolean getTableView() { + return tableView; + } + + public void setTableView(boolean tableView) { + this.tableView = tableView; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/PageEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/PageEntity.java new file mode 100644 index 0000000..0df3be1 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/PageEntity.java @@ -0,0 +1,56 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate; + +import eu.eudat.file.transformer.entities.common.DatabaseViewStyleDefinition; +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Page; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +public class PageEntity implements DatabaseViewStyleDefinition, DefinitionSerializable { + private String id; + private int ordinal; + private String title; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOrdinal() { + return ordinal; + } + + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + /*@Override + public Element toXml(Document doc) { + Element root = doc.createElement("page"); + root.setAttribute("title", this.title); + root.setAttribute("ordinal", "" + this.ordinal); + root.setAttribute("id", this.id); + return root; + }*/ + + @Override + public PageEntity fromDefinition(Page object) { + this.ordinal = object.getOrdinal(); + this.id = object.getId(); + this.title = object.getTitle(); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/RuleEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/RuleEntity.java new file mode 100644 index 0000000..ed7a481 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/RuleEntity.java @@ -0,0 +1,64 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate; + +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Rule; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class RuleEntity implements XmlSerializable, DefinitionSerializable { + private String target; + private String value; + + public String getTarget() { + return target; + } + + public void setTarget(String target) { + this.target = target; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public Element toXml(Document doc) { + Element rule = doc.createElement("rule"); + rule.setAttribute("target", this.target); + + Element value = doc.createElement("value"); + value.setTextContent(this.value); + + rule.appendChild(value); + return rule; + } + + @Override + public RuleEntity fromXml(Element item) { + this.target = item.getAttribute("target"); + + Element value = (Element) item.getElementsByTagName("value").item(0); + if (value != null) { + this.value = value.getTextContent(); + } + + return this; + } + + + @Override + public RuleEntity fromDefinition(Rule object) { + this.target = object.getTarget(); + + if (object.getValue() != null) { + this.value = object.getValue(); + } + + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/SectionEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/SectionEntity.java new file mode 100644 index 0000000..ebcc0dc --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/SectionEntity.java @@ -0,0 +1,214 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate; +import eu.eudat.file.transformer.entities.common.DatabaseViewStyleDefinition; +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlBuilder; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.FieldSet; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.Section; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +public class SectionEntity implements DatabaseViewStyleDefinition, DefinitionSerializable { + private String id; + private int ordinal; + private boolean defaultVisibility; + private String numbering; + private String page; + private String title; + private String description; + private String extendedDescription; + private List sections; + private List fieldSets; + private Boolean multiplicity; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOrdinal() { + return ordinal; + } + + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + + public boolean isDefaultVisibility() { + return defaultVisibility; + } + + public void setDefaultVisibility(boolean defaultVisibility) { + this.defaultVisibility = defaultVisibility; + } + + public String getPage() { + return page; + } + + public void setPage(String page) { + this.page = page; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public List getSections() { + return sections; + } + + public void setSections(List sections) { + this.sections = sections; + } + + public List getFieldSets() { + return fieldSets; + } + + public void setFieldSets(List fieldSetEntities) { + this.fieldSets = fieldSetEntities; + } + + public String getExtendedDescription() { + return extendedDescription; + } + + public void setExtendedDescription(String extendedDescription) { + this.extendedDescription = extendedDescription; + } + + public String getNumbering() { + return numbering; + } + + public void setNumbering(String numbering) { + this.numbering = numbering; + } + + public Boolean getMultiplicity() { + return multiplicity; + } + + public void setMultiplicity(Boolean multiplicity) { + this.multiplicity = multiplicity; + } + + /*@Override + public Element toXml(Document doc) { + Element rootElement = doc.createElement("section"); + rootElement.setAttribute("id", this.id); + rootElement.setAttribute("ordinal", "" + this.ordinal); + rootElement.setAttribute("defaultVisibility", "" + this.defaultVisibility); + rootElement.setAttribute("page", "" + this.page); + rootElement.setAttribute("multiplicity", (this.multiplicity != null ? "" + this.multiplicity : "false")); + + Element description = doc.createElement("description"); + description.setTextContent(this.description); + + Element extendedDescription = doc.createElement("extendedDescription"); + extendedDescription.setTextContent(this.extendedDescription); + + Element numbering = doc.createElement("numbering"); + numbering.setTextContent(this.numbering); + + Element title = doc.createElement("title"); + title.setTextContent(this.title); + + if (sections != null) { + Element sections = doc.createElement("sections"); + for (SectionEntity sectionEntity : this.sections) { + sectionEntity.setNumbering(this.numbering + "." + (this.sections.indexOf(sectionEntity) + 1)); + sections.appendChild(sectionEntity.toXml(doc)); + } + rootElement.appendChild(sections); + } + + if (this.fieldSets != null) { + Element formGroups = doc.createElement("fieldSets"); + for (FieldSetEntity fieldSetEntity : this.fieldSets) { + fieldSetEntity.setNumbering(this.numbering + "." + (this.fieldSets.indexOf(fieldSetEntity) + 1)); + formGroups.appendChild(fieldSetEntity.toXml(doc)); + } + rootElement.appendChild(formGroups); + } + + rootElement.appendChild(numbering); + rootElement.appendChild(title); + rootElement.appendChild(extendedDescription); + rootElement.appendChild(description); + + return rootElement; + }*/ + + public List getFieldById(String id){ + List fieldEntities = new ArrayList<>(); + if (id == null || id.isBlank()) return fieldEntities; + if (this.getFieldSets() != null){ + for (FieldSetEntity fieldSetEntity: this.getFieldSets()) { + fieldEntities.addAll(fieldSetEntity.getFieldById(id)); + } + } + if (this.getSections() != null){ + for (SectionEntity sectionEntity: this.getSections()) { + fieldEntities.addAll(sectionEntity.getFieldById(id)); + } + } + return fieldEntities; + } + + @Override + public SectionEntity fromDefinition(Section object) { + this.id = object.getId(); + this.ordinal = object.getOrdinal(); + this.defaultVisibility = object.getDefaultVisibility(); + this.page = object.getPage(); + this.multiplicity = object.getMultiplicity(); + + this.description = object.getDescription(); + + this.extendedDescription = object.getExtendedDescription(); + + this.numbering = object.getNumbering(); + + this.title = object.getTitle(); + + if (object.getSections() != null) { + this.sections = new LinkedList<>(); + for (Section section: object.getSections()) { + this.sections.add(new SectionEntity().fromDefinition(section)); + } + } + + + if (object.getFieldSets() != null) { + this.fieldSets = new LinkedList<>(); + for (FieldSet fieldSet: object.getFieldSets()) { + this.fieldSets.add(new FieldSetEntity().fromDefinition(fieldSet)); + } + } + + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/AutoCompleteDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/AutoCompleteDataEntity.java new file mode 100644 index 0000000..6812fe9 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/AutoCompleteDataEntity.java @@ -0,0 +1,308 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import com.fasterxml.jackson.annotation.JsonValue; +import eu.eudat.file.transformer.enums.DatabaseEnum; +import eu.eudat.file.transformer.enums.EnumUtils; +import eu.eudat.file.transformer.enums.FieldDataComboBoxType; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.AutoCompleteData; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.AutoCompleteSingleData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class AutoCompleteDataEntity extends ComboBoxDataEntity { + + public static class AuthAutoCompleteData { + 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 AutoCompleteSingleData { + private AutocompleteType autocompleteType; + private String url; + private ComboBoxDataEntity.Option autoCompleteOptions; + private String optionsRoot; + private Boolean hasAuth; + private AuthAutoCompleteData auth; + private String method; + + public AutocompleteType getAutocompleteType() { + return autocompleteType; + } + + public void setAutocompleteType(AutocompleteType autocompleteType) { + this.autocompleteType = autocompleteType; + } + + 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 AuthAutoCompleteData getAuth() { + return auth; + } + + public void setAuth(AuthAutoCompleteData auth) { + this.auth = auth; + } + + public ComboBoxDataEntity.Option getAutoCompleteOptions() { + return autoCompleteOptions; + } + public void setAutoCompleteOptions(ComboBoxDataEntity.Option autoCompleteOptions) { + this.autoCompleteOptions = autoCompleteOptions; + } + + public String getMethod() { + return method; + } + + public void setMethod(String method) { + this.method = method; + } + } + + private Boolean multiAutoComplete; + private List autoCompleteSingleDataList; + + public Boolean getMultiAutoComplete() { return multiAutoComplete; } + public void setMultiAutoComplete(Boolean multiAutoComplete) { this.multiAutoComplete = multiAutoComplete; } + + public List getAutoCompleteSingleDataList() { + return autoCompleteSingleDataList; + } + + public void setAutoCompleteSingleDataList(List autoCompleteSingleDataList) { + this.autoCompleteSingleDataList = autoCompleteSingleDataList; + } + + @Override + public FieldDataComboBoxType getFieldSubType() { + return FieldDataComboBoxType.Autocomplete; + } + + @Override + public FieldType getFieldType() { + return FieldType.AUTO_COMPLETE; + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + if (this.multiAutoComplete != null) + root.setAttribute("multiAutoComplete", this.multiAutoComplete.toString()); + for (AutoCompleteSingleData singleData: this.autoCompleteSingleDataList) { + Element parent = doc.createElement("autocompleteSingle"); + parent.setAttribute("url", singleData.url); + parent.setAttribute("optionsRoot", singleData.optionsRoot); + parent.setAttribute("autoCompleteType", Integer.toString(singleData.autocompleteType.getValue())); + parent.setAttribute("hasAuth", Boolean.toString(singleData.hasAuth)); + parent.setAttribute("method", singleData.method); + Element element = doc.createElement("option"); + element.setAttribute("label", singleData.autoCompleteOptions.getLabel()); + element.setAttribute("value", singleData.autoCompleteOptions.getValue()); + element.setAttribute("source", singleData.autoCompleteOptions.getSource()); + parent.appendChild(element); + if (singleData.hasAuth) { + Element authElement = doc.createElement("auth"); + authElement.setAttribute("url", singleData.auth.url); + authElement.setAttribute("method", singleData.auth.method); + authElement.setAttribute("body", singleData.auth.body); + authElement.setAttribute("path", singleData.auth.path); + authElement.setAttribute("type", singleData.auth.type); + parent.appendChild(authElement); + } + root.appendChild(parent); + } + return root; + }*/ + + /*@Override + public AutoCompleteDataEntity fromXml(Element item) { + super.fromXml(item); + this.autoCompleteSingleDataList = new ArrayList<>(); + NodeList items = item.getElementsByTagName("autocompleteSingle"); + if (items != null && items.getLength() > 0) { + for (int i = 0; i < items.getLength(); i++) { + this.autoCompleteSingleDataList.add(new AutoCompleteSingleData()); + Element single = (Element) items.item(i); + this.mapFromXml(single, this.autoCompleteSingleDataList.get(i)); + } + } else { + this.autoCompleteSingleDataList.add(new AutoCompleteSingleData()); + this.mapFromXml(item, this.autoCompleteSingleDataList.get(0)); + } + this.multiAutoComplete = Boolean.parseBoolean(item.getAttribute("multiAutoComplete")); + return this; + }*/ + +/* + private void mapFromXml(Element item, AutoCompleteSingleData singleData) { + singleData.url = item.getAttribute("url"); + singleData.optionsRoot = item.getAttribute("optionsRoot"); + this.multiAutoComplete = Boolean.parseBoolean(item.getAttribute("multiAutoComplete")); + if (item.getAttribute("autoCompleteType") == null || item.getAttribute("autoCompleteType").equals("") ) { + singleData.autocompleteType = AutocompleteType.UNCACHED; + } else { + singleData.autocompleteType = AutocompleteType.of(Integer.parseInt(item.getAttribute("autoCompleteType"))); + } + singleData.hasAuth = Boolean.parseBoolean(item.getAttribute("hasAuth")); + singleData.method = item.hasAttribute("method") ? item.getAttribute("method") : "GET"; + Element optionElement = (Element) item.getElementsByTagName("option").item(0); + if (optionElement != null) { + singleData.autoCompleteOptions = new Option(); + singleData.autoCompleteOptions.setLabel(optionElement.getAttribute("label")); + singleData.autoCompleteOptions.setValue(optionElement.getAttribute("value")); + singleData.autoCompleteOptions.setSource(optionElement.getAttribute("source")); + singleData.autoCompleteOptions.setUri(optionElement.getAttribute("uri")); + } + if (singleData.hasAuth) { + Element authElement = (Element) item.getElementsByTagName("auth").item(0); + if (authElement != null) { + singleData.auth = new AuthAutoCompleteData(); + singleData.auth.setUrl(authElement.getAttribute("url")); + singleData.auth.setMethod(authElement.getAttribute("method")); + singleData.auth.setBody(authElement.getAttribute("body")); + singleData.auth.setPath(authElement.getAttribute("path")); + singleData.auth.setType(authElement.getAttribute("type")); + } + } + } +*/ + public enum AutocompleteType implements DatabaseEnum { + UNCACHED(0), + CACHED(1); + + private final int value; + + AutocompleteType(int value) { + this.value = value; + } + + @JsonValue + public Integer getValue() { + return value; + } + + private static final Map map = EnumUtils.getEnumValueMap(AutocompleteType.class); + + public static AutocompleteType of(int i) { + return map.get(i); + } + } + + @Override + public AutoCompleteDataEntity fromDefinition(AutoCompleteData item) { + super.fromDefinition(item); + this.autoCompleteSingleDataList = new ArrayList<>(); + if (item.getAutoCompleteSingleDataList() != null && !item.getAutoCompleteSingleDataList().isEmpty()) { + for (eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.AutoCompleteSingleData singleData : item.getAutoCompleteSingleDataList()) { + AutoCompleteSingleData single = new AutoCompleteSingleData(); + this.mapFromDefinition(singleData, single); + this.autoCompleteSingleDataList.add(single); + } + } else { + this.autoCompleteSingleDataList.add(new AutoCompleteSingleData()); + this.mapFromDefinition(item.getAutoCompleteSingleDataList().get(0), this.autoCompleteSingleDataList.get(0)); + } + this.multiAutoComplete = item.getMultiAutoComplete(); + return this; + } + + private void mapFromDefinition(eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.AutoCompleteSingleData item, AutoCompleteSingleData singleData) { + singleData.url = item.getUrl(); + singleData.optionsRoot = item.getOptionsRoot(); + this.multiAutoComplete = false; + if (item.getAutocompleteType() == null ) { + singleData.autocompleteType = AutocompleteType.UNCACHED; + } else { + singleData.autocompleteType = item.getAutocompleteType(); + } + singleData.hasAuth = item.getHasAuth() != null ? item.getHasAuth() : false; + singleData.method = item.getMethod() != null && !item.getMethod().isEmpty() ? item.getMethod() : "GET"; + if (item.getAutoCompleteOptions() != null) { + singleData.autoCompleteOptions = new Option(); + singleData.autoCompleteOptions.setLabel(item.getAutoCompleteOptions().getLabel()); + singleData.autoCompleteOptions.setValue(item.getAutoCompleteOptions().getValue()); + singleData.autoCompleteOptions.setSource(item.getAutoCompleteOptions().getSource()); + singleData.autoCompleteOptions.setUri(item.getAutoCompleteOptions().getUri()); + } + if (singleData.hasAuth) { + if (item.getAuth() != null) { + singleData.auth = new AuthAutoCompleteData(); + singleData.auth.setUrl(item.getAuth().getUrl()); + singleData.auth.setMethod(item.getAuth().getMethod()); + singleData.auth.setBody(item.getAuth().getBody()); + singleData.auth.setPath(item.getAuth().getPath()); + singleData.auth.setType(item.getAuth().getType()); + } + } + } +} + + diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BaseFieldDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BaseFieldDataEntity.java new file mode 100644 index 0000000..0ee098c --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BaseFieldDataEntity.java @@ -0,0 +1,39 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.BaseFieldData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public abstract class BaseFieldDataEntity implements DefinitionSerializable { + private String label; + + public abstract FieldType getFieldType(); + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + /*public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + return root; + }*/ + + /*public T fromXml(Element item) { + + this.setLabel(item.getAttribute("label")); + return (T) this; + }*/ + + public T fromDefinition(U object) { + this.setLabel(object.getLabel()); + return (T) this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BooleanDecisionDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BooleanDecisionDataEntity.java new file mode 100644 index 0000000..fdcef56 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/BooleanDecisionDataEntity.java @@ -0,0 +1,12 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.BooleanDecisionData; + +public class BooleanDecisionDataEntity extends BaseFieldDataEntity { + + @Override + public FieldType getFieldType() { + return FieldType.BOOLEAN_DECISION; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CheckBoxDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CheckBoxDataEntity.java new file mode 100644 index 0000000..852799c --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CheckBoxDataEntity.java @@ -0,0 +1,12 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.CheckBoxData; + +public class CheckBoxDataEntity extends BaseFieldDataEntity { + + @Override + public FieldType getFieldType() { + return FieldType.CHECK_BOX; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ComboBoxDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ComboBoxDataEntity.java new file mode 100644 index 0000000..871c2f8 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ComboBoxDataEntity.java @@ -0,0 +1,96 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.enums.FieldDataComboBoxType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.BaseFieldData; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.ComboBoxOption; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public abstract class ComboBoxDataEntity extends BaseFieldDataEntity { + + public abstract FieldDataComboBoxType getFieldSubType(); + + public static class Option implements DefinitionSerializable { + 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; + } + + /*@Override + public Element toXml(Document doc) { + Element option = doc.createElement("option"); + option.setAttribute("label", this.label); + option.setAttribute("value", this.value); + option.setAttribute("source", this.source); + option.setAttribute("uri", this.uri); + return option; + } + + @Override + public Option fromXml(Element item) { + this.label = item.getAttribute("label"); + this.value = item.getAttribute("value"); + this.source = item.getAttribute("source"); + this.uri = item.getAttribute("uri"); + return this; + }*/ + + @Override + public Option fromDefinition(ComboBoxOption object) { + this.label = object.getLabel(); + this.value = object.getValue(); + this.source = object.getSource(); + this.uri = object.getUri(); + return this; + } + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + root.setAttribute("type", this.getFieldSubType().toString()); + return root; + } + + @Override + public T fromXml(Element item) { + super.fromXml(item); + return (T) this; + }*/ + + public T fromDefinition(U object) { + super.fromDefinition(object); + return (T) this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CurrencyDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CurrencyDataEntity.java new file mode 100644 index 0000000..82f2a86 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/CurrencyDataEntity.java @@ -0,0 +1,11 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.CurrencyData; + +public class CurrencyDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.CURRENCY; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DataRepositoryDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DataRepositoryDataEntity.java new file mode 100644 index 0000000..0901fb5 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DataRepositoryDataEntity.java @@ -0,0 +1,45 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.DataRepositoryData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class DataRepositoryDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.DATA_REPOSITORIES; + } + + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + if (this.getMultiAutoComplete() != null) { + root.setAttribute("multiAutoComplete", this.getMultiAutoComplete().toString()); + } + return root; + } + + @Override + public DataRepositoryDataEntity fromXml(Element item) { + super.fromXml(item); + this.setMultiAutoComplete(Boolean.parseBoolean(item.getAttribute("multiAutoComplete"))); + return this; + }*/ + + public DataRepositoryDataEntity fromDefinition(DataRepositoryData item) { + super.fromDefinition(item); + this.setMultiAutoComplete(item.getMultiAutoComplete()); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetAutoCompleteDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetAutoCompleteDataEntity.java new file mode 100644 index 0000000..24651f6 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetAutoCompleteDataEntity.java @@ -0,0 +1,51 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldDataInternalDmpEntryType; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.DatasetAutoCompleteData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class DatasetAutoCompleteDataEntity extends InternalDmpBaseDataEntity { + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + @Override + public FieldDataInternalDmpEntryType getFieldSubType() { + return FieldDataInternalDmpEntryType.Datasets; + } + + @Override + public FieldType getFieldType() { + return FieldType.INTERNAL_DMP_ENTRIES_DATASETS; + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + root.setAttribute("multiAutoComplete", this.multiAutoComplete.toString()); + + return root; + } + + @Override + public DatasetAutoCompleteDataEntity fromXml(Element item) { + super.fromXml(item); + this.multiAutoComplete = Boolean.parseBoolean(item.getAttribute("multiAutoComplete")); + + return this; + }*/ + + public DatasetAutoCompleteDataEntity fromDefinition(DatasetAutoCompleteData item) { + super.fromDefinition(item); + this.multiAutoComplete = item.getMultiAutoComplete(); + + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetIdentifierDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetIdentifierDataEntity.java new file mode 100644 index 0000000..43177b4 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatasetIdentifierDataEntity.java @@ -0,0 +1,11 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.DatasetIdentifierData; + +public class DatasetIdentifierDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.DATASET_IDENTIFIER; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatePickerDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatePickerDataEntity.java new file mode 100644 index 0000000..b48d200 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DatePickerDataEntity.java @@ -0,0 +1,11 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.DatePickerData; + +public class DatePickerDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.DATE_PICKER; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DmpAutoCompleteDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DmpAutoCompleteDataEntity.java new file mode 100644 index 0000000..66f09ee --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/DmpAutoCompleteDataEntity.java @@ -0,0 +1,49 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldDataInternalDmpEntryType; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.DmpAutoCompleteData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class DmpAutoCompleteDataEntity extends InternalDmpBaseDataEntity { + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + @Override + public FieldDataInternalDmpEntryType getFieldSubType() { + return FieldDataInternalDmpEntryType.Dmps; + } + + @Override + public FieldType getFieldType() { + return FieldType.INTERNAL_DMP_ENTRIES_DMPS; + } + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + root.setAttribute("multiAutoComplete", this.multiAutoComplete.toString()); + + return root; + } + + @Override + public DmpAutoCompleteDataEntity fromXml(Element item) { + super.fromXml(item); + this.multiAutoComplete = Boolean.parseBoolean(item.getAttribute("multiAutoComplete")); + + return this; + }*/ + + public DmpAutoCompleteDataEntity fromDefinition(DmpAutoCompleteData item) { + super.fromDefinition(item); + this.multiAutoComplete = item.getMultiAutoComplete(); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ExternalDatasetDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ExternalDatasetDataEntity.java new file mode 100644 index 0000000..aa9fcd5 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/ExternalDatasetDataEntity.java @@ -0,0 +1,60 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldDataExternalDatasetType; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.ExternalDatasetData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class ExternalDatasetDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.EXTERNAL_DATASETS; + } + private Boolean multiAutoComplete; + private FieldDataExternalDatasetType type; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + public FieldDataExternalDatasetType getType() { + return type; + } + + public void setType(FieldDataExternalDatasetType type) { + this.type = type; + } + + /*@Override + public Element toXml(Document doc) { + Element root = doc.createElement("data"); + root.setAttribute("label", this.getLabel()); + if (this.getMultiAutoComplete() != null) { + root.setAttribute("multiAutoComplete", this.getMultiAutoComplete().toString()); + } + if (this.getType() != null) { + root.setAttribute("type", this.getType().getValue()); + } + return root; + } + + @Override + public ExternalDatasetDataEntity fromXml(Element item) { + this.setLabel(item != null ? item.getAttribute("label") : ""); + this.setMultiAutoComplete(Boolean.parseBoolean(item.getAttribute("multiAutoComplete"))); + this.setType(item.getAttribute("type") != null ? FieldDataExternalDatasetType.of(item.getAttribute("type")): FieldDataExternalDatasetType.Other); + return this; + }*/ + + public ExternalDatasetDataEntity fromDefinition(ExternalDatasetData item) { + super.fromDefinition(item); + this.setMultiAutoComplete(item.getMultiAutoComplete()); + this.setType(item.getType() != null ? item.getType(): FieldDataExternalDatasetType.Other); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FieldDataHelper.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FieldDataHelper.java new file mode 100644 index 0000000..1da768a --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FieldDataHelper.java @@ -0,0 +1,68 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + + +import eu.eudat.file.transformer.enums.FieldDataComboBoxType; +import eu.eudat.file.transformer.enums.FieldDataInternalDmpEntryType; +import eu.eudat.file.transformer.enums.FieldType; + +public class FieldDataHelper { + public BaseFieldDataEntity create(FieldType type, String subType) { + switch (type) { + case COMBO_BOX: { + if (subType != null && !subType.isBlank()) { + switch (FieldDataComboBoxType.of(subType)) { + case Wordlist: { + return new WordListDataEntity(); + } + case Autocomplete: { + return new AutoCompleteDataEntity(); + } + } + } + break; + } + case INTERNAL_DMP_ENTRIES: { + if (subType != null && !subType.isBlank()) { + switch (FieldDataInternalDmpEntryType.of(subType)){ + case Dmps: { + return new DmpAutoCompleteDataEntity(); + } + case Datasets: { + return new DatasetAutoCompleteDataEntity(); + } + case Researchers : { + return new ResearcherAutoCompleteDataEntity(); + } + } + } + break; + } + case BOOLEAN_DECISION: return new BooleanDecisionDataEntity(); + case RADIO_BOX: return new RadioBoxDataEntity(); + case CHECK_BOX: return new CheckBoxDataEntity(); + case FREE_TEXT: return new FreeTextDataEntity(); + case TEXT_AREA: return new TextAreaDataEntity(); + case RICH_TEXT_AREA: return new RichTextAreaDataEntity(); + case UPLOAD: return new UploadDataEntity(); + case DATE_PICKER: return new DatePickerDataEntity(); + case EXTERNAL_DATASETS: return new ExternalDatasetDataEntity(); + case DATA_REPOSITORIES: return new DataRepositoryDataEntity(); + case PUB_REPOSITORIES: return new PublicationRepositoryDataEntity(); + case JOURNAL_REPOSITORIES: return new JournalRepositoryDataEntity(); + case TAXONOMIES: return new TaxonomyDataEntity(); + case LICENSES: return new LicenseDataEntity(); + case PUBLICATIONS: return new PublicationDataEntity(); + case REGISTRIES: return new RegistryDataEntity(); + case SERVICES: return new ServiceDataEntity(); + case TAGS: return new TagDataEntity(); + case RESEARCHERS: return new ResearcherDataEntity(); + case ORGANIZATIONS: return new OrganizationDataEntity(); + case DATASET_IDENTIFIER: return new DatasetIdentifierDataEntity(); + case CURRENCY: return new CurrencyDataEntity(); + case VALIDATION: return new ValidationDataEntity(); + default: return null; + } + + return null; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FreeTextDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FreeTextDataEntity.java new file mode 100644 index 0000000..de6707e --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/FreeTextDataEntity.java @@ -0,0 +1,11 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.FreeTextData; + +public class FreeTextDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.FREE_TEXT; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/InternalDmpBaseDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/InternalDmpBaseDataEntity.java new file mode 100644 index 0000000..18a3fe1 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/InternalDmpBaseDataEntity.java @@ -0,0 +1,29 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldDataInternalDmpEntryType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.BaseFieldData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public abstract class InternalDmpBaseDataEntity extends BaseFieldDataEntity { + + public abstract FieldDataInternalDmpEntryType getFieldSubType(); + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + root.setAttribute("type", this.getFieldSubType().toString()); + return root; + } + + @Override + public T fromXml(Element item) { + super.fromXml(item); + return (T) this; + }*/ + + public T fromDefinition(U item) { + super.fromDefinition(item); + return (T) this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/JournalRepositoryDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/JournalRepositoryDataEntity.java new file mode 100644 index 0000000..37a32fc --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/JournalRepositoryDataEntity.java @@ -0,0 +1,46 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.JournalRepositoryData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class JournalRepositoryDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.JOURNAL_REPOSITORIES; + } + + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + if (this.getMultiAutoComplete() != null) { + root.setAttribute("multiAutoComplete", this.getMultiAutoComplete().toString()); + } + return root; + } + + @Override + public JournalRepositoryDataEntity fromXml(Element item) { + super.fromXml(item); + this.setMultiAutoComplete(Boolean.parseBoolean(item.getAttribute("multiAutoComplete"))); + return this; + }*/ + + @Override + public JournalRepositoryDataEntity fromDefinition(JournalRepositoryData object) { + super.fromDefinition(object); + this.setMultiAutoComplete(object.getMultiAutoComplete()); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/LicenseDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/LicenseDataEntity.java new file mode 100644 index 0000000..fe84f5f --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/LicenseDataEntity.java @@ -0,0 +1,45 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.LicenseData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class LicenseDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.LICENSES; + } + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + if (this.getMultiAutoComplete() != null) { + root.setAttribute("multiAutoComplete", this.getMultiAutoComplete().toString()); + } + return root; + } + + @Override + public LicenseDataEntity fromXml(Element item) { + super.fromXml(item); + this.setMultiAutoComplete(Boolean.parseBoolean(item.getAttribute("multiAutoComplete"))); + return this; + }*/ + + @Override + public LicenseDataEntity fromDefinition(LicenseData object) { + super.fromDefinition(object); + this.multiAutoComplete = object.getMultiAutoComplete(); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/OrganizationDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/OrganizationDataEntity.java new file mode 100644 index 0000000..4289596 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/OrganizationDataEntity.java @@ -0,0 +1,45 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.OrganizationData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class OrganizationDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.ORGANIZATIONS; + } + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + if (this.getMultiAutoComplete() != null) { + root.setAttribute("multiAutoComplete", this.getMultiAutoComplete().toString()); + } + return root; + } + + @Override + public OrganizationDataEntity fromXml(Element item) { + super.fromXml(item); + this.setMultiAutoComplete(Boolean.parseBoolean(item.getAttribute("multiAutoComplete"))); + return this; + }*/ + + @Override + public OrganizationDataEntity fromDefinition(OrganizationData object) { + super.fromDefinition(object); + this.multiAutoComplete = object.getMultiAutoComplete(); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationDataEntity.java new file mode 100644 index 0000000..0be97f0 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationDataEntity.java @@ -0,0 +1,43 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.PublicationData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class PublicationDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.PUBLICATIONS; + } + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + if (this.getMultiAutoComplete() != null) { + root.setAttribute("multiAutoComplete", this.getMultiAutoComplete().toString()); + } + return root; + } + + @Override + public PublicationDataEntity fromXml(Element item) { + super.fromXml(item); + this.setMultiAutoComplete(Boolean.parseBoolean(item.getAttribute("multiAutoComplete"))); + return this; + }*/ + + @Override + public PublicationDataEntity fromDefinition(PublicationData object) { + super.fromDefinition(object); + this.multiAutoComplete = object.getMultiAutoComplete(); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationRepositoryDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationRepositoryDataEntity.java new file mode 100644 index 0000000..3b85ea2 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/PublicationRepositoryDataEntity.java @@ -0,0 +1,46 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.PublicationRepositoryData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class PublicationRepositoryDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.PUB_REPOSITORIES; + } + + private Boolean multiAutoComplete; + + public Boolean getMultiAutoComplete() { + return multiAutoComplete; + } + + public void setMultiAutoComplete(Boolean multiAutoComplete) { + this.multiAutoComplete = multiAutoComplete; + } + + /*@Override + public Element toXml(Document doc) { + Element root = super.toXml(doc); + if (this.getMultiAutoComplete() != null) { + root.setAttribute("multiAutoComplete", this.getMultiAutoComplete().toString()); + } + return root; + } + + @Override + public PublicationRepositoryDataEntity fromXml(Element item) { + super.fromXml(item); + this.setMultiAutoComplete(Boolean.parseBoolean(item.getAttribute("multiAutoComplete"))); + return this; + }*/ + + @Override + public PublicationRepositoryDataEntity fromDefinition(PublicationRepositoryData object) { + super.fromDefinition(object); + this.multiAutoComplete = object.getMultiAutoComplete(); + return this; + } +} diff --git a/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/RadioBoxDataEntity.java b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/RadioBoxDataEntity.java new file mode 100644 index 0000000..eb94521 --- /dev/null +++ b/src/main/java/eu/eudat/file/transformer/entities/descriptiontemplate/fielddata/RadioBoxDataEntity.java @@ -0,0 +1,114 @@ +package eu.eudat.file.transformer.entities.descriptiontemplate.fielddata; + +import eu.eudat.file.transformer.entities.definition.DefinitionSerializable; +import eu.eudat.file.transformer.entities.xml.XmlSerializable; +import eu.eudat.file.transformer.enums.FieldType; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.RadioBoxData; +import eu.eudat.file.transformer.model.descriptiontemplatedefinition.fielddata.RadioBoxOption; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.LinkedList; +import java.util.List; + +public class RadioBoxDataEntity extends BaseFieldDataEntity { + @Override + public FieldType getFieldType() { + return FieldType.RADIO_BOX; + } + public static class Option implements DefinitionSerializable { + 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; + } + +/* @Override + public Element toXml(Document doc) { + Element option = doc.createElement("option"); + option.setAttribute("label", this.label); + option.setAttribute("value", this.value); + return option; + } + + @Override + public Option fromXml(Element item) { + this.label = item.getAttribute("label"); + this.value = item.getAttribute("value"); + return this; + }*/ + + public Option fromDefinition(RadioBoxOption item) { + this.label = item.getLabel(); + this.value = item.getValue(); + return this; + } + + + } + + private List