code: @Override
      public DataModelIF<Long, Long> parseData(final File f) throws IOException {
          DataModelIF<Long, Long> dataset = new DataModel<>();
          Reader in = new InputStreamReader(new FileInputStream(f), "UTF-8");
  
          Iterable<CSVRecord> records;
          if (isHasHeader()) {
              records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).withHeader().parse(in);
          } else {
              records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).parse(in);
          }
          for (CSVRecord record : records) {
              long userID = Long.parseLong(record.get(getUserTok()));
              long itemID = Long.parseLong(record.get(getItemTok()));
              double preference = Double.parseDouble(record.get(getPrefTok()));
              dataset.addPreference(userID, itemID, preference);
          }
          in.close();
          return dataset;
      }
docs: {@inheritDoc}