@@ -0,0 +1,2095 @@
+package no.uio.ifi.trackfind.backend.data.providers.ebi;%0A%0Aimport lombok.extern.slf4j.Slf4j;%0Aimport no.uio.ifi.trackfind.backend.data.providers.DataProvider;%0Aimport no.uio.ifi.trackfind.backend.data.providers.DataProvidersRepository;%0Aimport org.springframework.stereotype.Component;%0A%0Aimport java.io.IOException;%0Aimport java.net.URL;%0Aimport java.util.*;%0A%0A@Slf4j%0A//@Component%0Apublic class EBIDataProvider implements DataProvider %7B%0A%0A    private static final String METADATA_URL = %22ftp://ftp.ebi.ac.uk/pub/databases/blueprint/releases/20150128/homo_sapiens/hub/hg19/tracksDb.txt%22;%0A%0A    @SuppressWarnings(%22unchecked%22)%0A    @Override%0A    public Collection%3CMap%3E fetchData() %7B%0A        log.info(%22Fetching data using %22 + getClass().getSimpleName());%0A        Collection%3CMap%3E datasets = new HashSet%3C%3E();%0A        try (Scanner scanner = new Scanner(new URL(METADATA_URL).openStream()).useDelimiter(%22%5Cn%5Cn%22)) %7B%0A            while (scanner.hasNext()) %7B%0A                String entry = scanner.next();%0A                Optional%3CString%3E metadataOptional = Arrays.stream(entry.split(%22%5Cn%22)).filter(s -%3E s.startsWith(%22    metadata%22)).findAny();%0A                if (!metadataOptional.isPresent()) %7B%0A                    continue;%0A                %7D%0A                String metadata = metadataOptional.get().substring(13);%0A                Map%3CString, String%3E dataset = new HashMap%3C%3E();%0A                String%5B%5D keyValuePairs = metadata.split(%22 %22);%0A                for (String keyValuePair : keyValuePairs) %7B%0A                    String%5B%5D keyValue = keyValuePair.split(%22=%22);%0A                    dataset.put(keyValue%5B0%5D, keyValue%5B1%5D);%0A                %7D%0A                dataset.put(DataProvidersRepository.JSON_KEY, this.getClass().getSimpleName());%0A                datasets.add(dataset);%0A            %7D%0A        %7D catch (IOException e) %7B%0A            log.error(e.getMessage(), e);%0A            return Collections.emptySet();%0A        %7D%0A        return datasets;%0A    %7D%0A%0A    @SuppressWarnings(%22unchecked%22)%0A    @Override%0A    public String getUrlFromDataset(Map dataset) %7B%0A        return String.valueOf(dataset.get(%22bigDataUrl%22));%0A    %7D%0A%0A%7D%0A

Add EBIDataProvider (not used yet).