From eb3bafa3f6bf4590415fd26784f6df5193b1f99a Mon Sep 17 00:00:00 2001
From: Peter Alexander <>
Date: Fri, 5 Aug 2022 17:00:43 +0100
Subject: [PATCH] Null checks on country groups

---
 src/ac/ed/lurg/country/CompositeCountryManager.java |  7 +++++--
 src/ac/ed/lurg/demand/BaseConsumpManager.java       | 13 ++-----------
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/src/ac/ed/lurg/country/CompositeCountryManager.java b/src/ac/ed/lurg/country/CompositeCountryManager.java
index a69be51d..9a68380a 100644
--- a/src/ac/ed/lurg/country/CompositeCountryManager.java
+++ b/src/ac/ed/lurg/country/CompositeCountryManager.java
@@ -58,7 +58,7 @@ public class CompositeCountryManager {
 				continue;			
 			else if (ModelConfig.PREDEFINED_COUNTRY_GROUPING)
 				cc = getForName(getCountryGroup(c),c.getRegion());
-			else if (baseConsumpManager.getPopForGrouping(c) < ModelConfig.POPULATION_AGGREG_LIMIT)
+			else if (baseConsumpManager.getBasePopulation(c) < ModelConfig.POPULATION_AGGREG_LIMIT)
 				cc = getForName(c.getRegion() + "_other", c.getRegion());
 			else 
 				cc = getForName(c.getCountryName(),c.getRegion());
@@ -71,8 +71,11 @@ public class CompositeCountryManager {
 	}
 
 	private CompositeCountry getForName(String name, String region) {
-		CompositeCountry cc = mapFromName.get(name);
+		if (name == null)
+			return null;
 		
+		CompositeCountry cc = mapFromName.get(name);
+				
 		if (cc == null) {
 			cc = new CompositeCountry(name, region);
 			mapFromName.put(name, cc);
diff --git a/src/ac/ed/lurg/demand/BaseConsumpManager.java b/src/ac/ed/lurg/demand/BaseConsumpManager.java
index b768c741..0369f01a 100644
--- a/src/ac/ed/lurg/demand/BaseConsumpManager.java
+++ b/src/ac/ed/lurg/demand/BaseConsumpManager.java
@@ -17,12 +17,10 @@ public class BaseConsumpManager {
 	private static final int BASE_POP_COL = 1; 
 	private static final int COMMODITY_COL = 2; 
 	private static final int BASE_CPC_COL = 3; 
-	private static final int POP_FOR_GROUPING_COL = 4; 
 
 	private Map<SingleCountry, Map<CommodityType, Double>> baseConsumpMap = new HashMap<SingleCountry, Map<CommodityType, Double>>();
 	// Don't like the duplication of population in this base consumption file, but guess not really a problem
 	private Map<SingleCountry, Double> basePop = new HashMap<SingleCountry, Double>();
-	private Map<SingleCountry, Double> popForGroupingMap = new HashMap<SingleCountry, Double>();
 
 	public BaseConsumpManager() {
 		super();
@@ -34,7 +32,7 @@ public class BaseConsumpManager {
 		try {
 			BufferedReader fitReader = new BufferedReader(new FileReader(filename)); 
 			String line, countryName, commodityName;
-			double pop, cpc, popForGrouping;
+			double pop, cpc;
 			fitReader.readLine(); // read header
 
 			while ((line=fitReader.readLine()) != null) {
@@ -47,7 +45,6 @@ public class BaseConsumpManager {
 				pop = Double.parseDouble(tokens[BASE_POP_COL]);
 				commodityName = tokens[COMMODITY_COL];
 				cpc = Double.parseDouble(tokens[BASE_CPC_COL]);
-				popForGrouping = Double.parseDouble(tokens[POP_FOR_GROUPING_COL]);
 
 				SingleCountry country = CountryManager.getForName(countryName);
 				if (country == null)
@@ -63,7 +60,6 @@ public class BaseConsumpManager {
 					
 					commodityMap.put(commodity, cpc);
 					basePop.put(country, pop);
-					popForGroupingMap.put(country, popForGrouping);
 				}
 			} 
 			fitReader.close(); 
@@ -92,12 +88,7 @@ public class BaseConsumpManager {
 		Double d = basePop.get(country);
 		return (d != null) ? d.doubleValue() : Double.NaN;
 	}
-	
-	public double getPopForGrouping(SingleCountry country) {
-		Double d = popForGroupingMap.get(country);
-		return (d != null) ? d.doubleValue() : Double.NaN;
-	}
-	
+		
 	public Collection<SingleCountry> getAllCountries() {
 		return basePop.keySet();
 	}
-- 
GitLab