public void readDumpedPersonShops(String file) { try { FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String curr_line; Id<Person> prevId = Id.create(-99, Person.class); int countAware = 0; int countVisited = 0; while ((curr_line = br.readLine()) != null) { String[] entrs = curr_line.split(";", -1); Id<Location> shopId = Id.create(entrs[1].trim(), Location.class); Id<Person> userId = Id.create(entrs[2].trim().substring(4, 8), Person.class); EstimationPerson person = this.population.get(userId); ShopLocation store = new ShopLocation(shopId); int aware = 0; int visited = 0; boolean nullStore = false; if (entrs[5].trim().equals("yes")) { aware = 1; countAware++; } else if (entrs[5].trim().equals("no")) { aware = -1; store.setVisitFrequency("never"); } else if (entrs[5].trim().equals("NULL")) { nullStore = true; } if (entrs[3].trim().equals("yes")) { visited = 1; store.setVisitFrequency(entrs[6].trim()); countVisited++; } else if (entrs[3].trim().equals("no")) { visited = -1; store.setVisitFrequency(entrs[6].trim()); } else if (entrs[3].trim().equals("NULL")) { nullStore = true; } if (person == null) { log.error("person null for user " + userId); System.exit(1); } else { if (nullStore) { person.addNullStore(store); } else { person.addStore(store, aware, visited); } } if (prevId.compareTo(userId) != 0 && prevId.compareTo(Id.create(-99, Person.class)) != 0) { log.info( "parsed user: "******" " + countAware + " aware stores " + countVisited + " visited stores"); countAware = 0; countVisited = 0; } prevId = Id.create(entrs[2].trim().substring(4, 8), Person.class); } } catch (IOException e) { e.printStackTrace(); } }