package uk.ac.ox.zoo.seeg.abraid.mp.dataacquisition.service;
import org.springframework.transaction.annotation.Transactional;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.DiseaseGroup;
import uk.ac.ox.zoo.seeg.abraid.mp.dataacquisition.acquirers.csv.CsvDataAcquirer;
import uk.ac.ox.zoo.seeg.abraid.mp.dataacquisition.acquirers.healthmap.HealthMapDataAcquirer;
import java.util.List;
/**
* Service class for data acquisition.
*
* Copyright (c) 2014 University of Oxford
*/
@Transactional(rollbackFor = Exception.class)
public class DataAcquisitionServiceImpl implements DataAcquisitionService {
private HealthMapDataAcquirer healthMapDataAcquirer;
private CsvDataAcquirer csvDataAcquirer;
public DataAcquisitionServiceImpl(HealthMapDataAcquirer healthMapDataAcquirer, CsvDataAcquirer csvDataAcquirer) {
this.healthMapDataAcquirer = healthMapDataAcquirer;
this.csvDataAcquirer = csvDataAcquirer;
}
/**
* Acquires HealthMap data from the HealthMap web service.
*/
@Override
public void acquireHealthMapDataFromWebService() {
healthMapDataAcquirer.acquireDataFromWebService();
}
/**
* Acquires HealthMap data from a file.
* @param jsonFileName The name of a file that contains HealthMap JSON.
*/
@Override
public void acquireHealthMapDataFromFile(String jsonFileName) {
healthMapDataAcquirer.acquireDataFromFile(jsonFileName);
}
/**
* Acquires data from a generic CSV file.
* @param csv The content of the CSV file.
* @param isBias Whether or not this is a "bias" data set.
* @param isGoldStandard Whether or not this is a "gold standard" data set (only relevant for non-bias data sets).
* @param biasDisease The ID of the disease for which this is a bias data set (only relevant for bias data sets).
* @return A list of messages resulting from the data acquisition.
*/
@Override
public List<String> acquireCsvData(byte[] csv, boolean isBias, boolean isGoldStandard, DiseaseGroup biasDisease) {
return csvDataAcquirer.acquireDataFromCsv(csv, isBias, isGoldStandard, biasDisease);
}
}