OpenDataPhillyFinal / src / edu / upenn / cit594 / processor / totalVaxPerCapita.java
totalVaxPerCapita.java
Raw
package edu.upenn.cit594.processor;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.TreeMap;

import edu.upenn.cit594.util.CovidData;
import edu.upenn.cit594.util.Population;

public class totalVaxPerCapita {

	public static HashMap<Integer, Integer> getVax(String timeStamp, String partOrFull,
			ArrayList<CovidData> covidData) {
		
		// hashmap with String zipcode and Integer value
		HashMap<Integer, Integer> zipVax = new HashMap<>();

		for (CovidData entry : covidData) {
			
			String covidEntry = entry.gettimeStamp().split(" ")[0];
			covidEntry = covidEntry.replace("\"", "");

			if (covidEntry.equals(timeStamp)) {

				if (partOrFull.equals("partial")) {
					if (entry.getpartialVax() != 0) {
						zipVax.put(entry.getzipCode(), entry.getpartialVax());
					}
				}

				else if (partOrFull.equals("full")) {
					if (entry.getfullVax() != 0) {
						zipVax.put(entry.getzipCode(), entry.getfullVax());
					}
				}
			}
		}

		return zipVax;
	}

	public static TreeMap<Integer, Double> getVaxPerCapita (HashMap<Integer, Integer> zipVax, ArrayList<Population> population) {
		
		TreeMap <Integer, Double> sortedVaxPerCapita = new TreeMap<>();
		
		//used to get trailing zeros
		DecimalFormat df = new DecimalFormat("#.0000");
		
		for (Population popEntry : population) {
			if (zipVax.containsKey(popEntry.getZipCode())) {
				
				double VaxPerCapita = (double) zipVax.get(popEntry.getZipCode()) / popEntry.getPopulation();
				
				//round to trailing zeros
				double roundedVaxPerCapita = Double.parseDouble(df.format(VaxPerCapita));

				sortedVaxPerCapita.put(popEntry.getZipCode(), roundedVaxPerCapita);
			}
		}
			
			
		//System.out.println(sortedVaxPerCapita);
		return sortedVaxPerCapita;	
	}


}