package edu.upenn.cit594.processor; import java.util.ArrayList; import edu.upenn.cit594.datamanagement.CSVCovidReader; import edu.upenn.cit594.datamanagement.CovidReader; import edu.upenn.cit594.datamanagement.JSONCovidReader; import edu.upenn.cit594.datamanagement.PopulationsReader; import edu.upenn.cit594.datamanagement.PropertiesReader; import edu.upenn.cit594.util.CovidData; import edu.upenn.cit594.util.Population; import edu.upenn.cit594.util.Property; /** *Takes in reader objects and uses data to create the objects in util for UI */ public class Processor { protected PopulationsReader populationsReader; protected PropertiesReader propertiesReader; protected CovidReader covidReader; protected ArrayList<Population> populationObj; protected ArrayList<CovidData> covidDataObj; protected ArrayList<Property> propertyObj; public Processor(PopulationsReader popR, PropertiesReader propR, CovidReader covidR) { //set instance vars this.populationsReader = popR; this.propertiesReader = propR; this.covidReader = covidR; //Initalize Start if (this.propertiesReader != null) { propertyObj = propR.readPropertiesCSV(); }else { propertyObj = null; } if (this.populationsReader != null) { populationObj = popR.readPopulationCSV(); } else { populationObj = null; } if (this.covidReader != null) { if (covidR instanceof CSVCovidReader) { covidDataObj = CSVCovidReader.readCovidCSV(); } else if (covidR instanceof JSONCovidReader) { covidDataObj = JSONCovidReader.readCovidJSON(); }else { covidDataObj = null; } }else { covidDataObj = null; } //populationObj = popR.readPopulationCSV(); //propertyObj = propR.readPropertiesCSV(); } public static CovidReader createCovidReader(String extension, String filename) { if (extension.equals("csv")){ return new CSVCovidReader(filename); }else if (extension.equals("json")) { return new JSONCovidReader(filename); }else { return null; } } public ArrayList<Population> getpopulationObj() { return populationObj; } public ArrayList<Property> getpropertyObj() { return propertyObj; } public ArrayList<CovidData> getcovidDataObj() { return covidDataObj; } }