@Override
    public @NotNull FileNode apply(VirtualFile file, Object id) {
      FileNode node = map.isEmpty() ? null : map.remove(file);
      return node != null && node.id.equals(id) ? node : new FileNode(file, id);
    }
@Override
    public @NotNull FileNode apply(VirtualFile file, Object id)