package eu.eudat.migration.services; import eu.eudat.logic.managers.AdminManager; import eu.eudat.logic.managers.MetricsManager; import eu.eudat.logic.services.ApiContext; import eu.eudat.migration.dao.TemplateRepository; import eu.eudat.migration.dao.UserRepository; import eu.eudat.migration.entities.*; import eu.eudat.models.data.admin.components.datasetprofile.Field; import eu.eudat.models.data.admin.components.datasetprofile.FieldSet; import eu.eudat.models.data.admin.components.datasetprofile.Page; import eu.eudat.models.data.admin.components.datasetprofile.Section; import eu.eudat.models.data.admin.composite.DatasetProfile; import eu.eudat.models.data.components.commons.DefaultValue; import eu.eudat.models.data.components.commons.Multiplicity; import eu.eudat.models.data.components.commons.ViewStyle; import eu.eudat.models.data.components.commons.Visibility; import eu.eudat.models.data.datasetprofile.DatasetProfileOverviewModel; import eu.eudat.models.data.datasetwizard.DatasetWizardModel; import eu.eudat.models.data.dmp.DataManagementPlanEditorModel; import eu.eudat.models.data.user.composite.PagedDatasetProfile; import eu.eudat.types.MetricNames; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Service; import javax.transaction.Transactional; import java.util.*; import java.util.stream.Collectors; @Service @ConditionalOnProperty(prefix = "roadmap", name = "database.url") public class DMPRoadmapService { /** DMPRoadmap Repositories*/ private final TemplateRepository templateRepository; private final UserRepository userRepository; /** Argos beans */ private final ApiContext apiContext; private final MetricsManager metricsManager; /** Data */ private final List datasetProfiles = new ArrayList<>(); private final List dmps = new ArrayList<>(); private final List datasets = new ArrayList<>(); /** Metadata */ private final Map groups = new HashMap<>(); @Autowired public DMPRoadmapService(TemplateRepository templateRepository, UserRepository userRepository, ApiContext apiContext, MetricsManager metricsManager) { this.templateRepository = templateRepository; this.userRepository = userRepository; this.apiContext = apiContext; this.metricsManager = metricsManager; } public void migrate() { List