package eu.eudat.managers; import eu.eudat.dao.entities.ExternalDatasetDao; import eu.eudat.entities.ExternalDataset; import eu.eudat.models.criteria.ExternalDatasetCriteria; import eu.eudat.models.externaldataset.ExternalDatasetTableRequest; import eu.eudat.models.helpers.common.DataTableData; import eu.eudat.models.externaldataset.ExternalDatasetListingModel; import eu.eudat.proxy.config.exceptions.HugeResultSet; import eu.eudat.proxy.config.exceptions.NoURLFound; import eu.eudat.proxy.fetching.RemoteFetcher; import eu.eudat.queryable.QueryableList; import eu.eudat.utilities.builders.DomainModelConverter; import java.util.List; import java.util.UUID; public class ExternalDatasetManager { public DataTableData getPaged(ExternalDatasetDao externalDatasetDao, ExternalDatasetTableRequest externalDatasetTableRequest) throws Exception { QueryableList items = externalDatasetDao.getWithCriteria(externalDatasetTableRequest.getCriteria()); QueryableList pagedItems = PaginationManager.applyPaging(items, externalDatasetTableRequest); List externalDatasetListingmodels = new DomainModelConverter().fromDataModel(pagedItems.toList(), ExternalDatasetListingModel.class); DataTableData externalDatasetDataTableData = new DataTableData<>(); externalDatasetDataTableData.setData(externalDatasetListingmodels); externalDatasetDataTableData.setTotalCount(items.count()); return externalDatasetDataTableData; } public List getWithExternal(ExternalDatasetDao externalDatasetDao , String query, RemoteFetcher remoteFetcher) throws HugeResultSet, NoURLFound, InstantiationException, IllegalAccessException { ExternalDatasetCriteria criteria = new ExternalDatasetCriteria(); criteria.setLike(query); QueryableList items = externalDatasetDao.getWithCriteria(criteria); List externalDatasets = new DomainModelConverter().fromDataModel(items.toList(), ExternalDatasetListingModel.class); return externalDatasets; } public ExternalDatasetListingModel getSingle(ExternalDatasetDao externalDatasetDao , UUID id) throws HugeResultSet, NoURLFound, InstantiationException, IllegalAccessException { ExternalDataset externalDataset = externalDatasetDao.find(id); ExternalDatasetListingModel externalDatasetModel = new ExternalDatasetListingModel(); externalDatasetModel.fromDataModel(externalDataset); return externalDatasetModel; } }