Пример #1
0
  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();
    }
  }