private static @NotNull Collection<UsageCluster> parseFile(@NotNull VirtualFile file, @NotNull Map<String, SimilarUsage> usageIndex)
    throws IOException {
    JsonReaderEx json = new JsonReaderEx(VfsUtilCore.loadText(file));
    List<Map<String, Object>> list = JsonUtil.nextList(json);
    Int2ObjectMap<UsageCluster> clusters = new Int2ObjectOpenHashMap<>();
    list.forEach(e -> {
      int cluster_number = (int)(double)e.get(CLUSTER_NUMBER);
      UsageCluster cluster = clusters.get(cluster_number);
      if (cluster == null) {
        cluster = new UsageCluster();
        clusters.put(cluster_number, cluster);
      }
      Object filename = e.get(FILENAME);
      if (filename != null) {
        SimilarUsage usage = usageIndex.get(filename);
        if (usage == null) {
          LOG.warning("No usage found for " + filename);
        }
        else {
          cluster.addUsage(usage);
        }
      }
    });
    return clusters.values();
  }
private static @NotNull Collection<UsageCluster> parseFile(@NotNull VirtualFile file, @NotNull Map<String, SimilarUsage> usageIndex)