private static <E extends WorkspaceEntity> void collectIteratorBuildersOnChange(@NotNull Change change,
                                                                                  @Nullable E oldEntity,
                                                                                  @Nullable E newEntity,
                                                                                  @NotNull Project project,
                                                                                  @NotNull Collection<? super IndexableIteratorBuilder> builders,
                                                                                  @NotNull WorkspaceIndexingRootsBuilder descriptionsBuilder,
                                                                                  @NotNull EntityStorage entityStorage) {
    LOG.assertTrue(newEntity != null || change == Change.Removed, "New entity " + newEntity + ", change " + change);
    LOG.assertTrue(oldEntity != null || change == Change.Added, "Old entity " + oldEntity + ", change " + change);

    //noinspection unchecked
    Class<? super E> entityClass = (Class<? super E>)Objects.requireNonNull(newEntity == null ? oldEntity : newEntity).getEntityInterface();

    List<IndexableIteratorBuilder> newBuilders = new ArrayList<>();
    collectWFICIteratorsOnChange(change, oldEntity, newEntity, project, newBuilders, descriptionsBuilder, entityClass,
                                 entityStorage);
    builders.addAll(newBuilders);
  }
private static <E extends WorkspaceEntity> void collectIteratorBuildersOnChange(@NotNull Change change,
                                                                                  @Nullable E oldEntity,
                                                                                  @Nullable E newEntity,
                                                                                  @NotNull Project project,
                                                                                  @NotNull Collection<? super IndexableIteratorBuilder> builders,
                                                                                  @NotNull WorkspaceIndexingRootsBuilder descriptionsBuilder,
                                                                                  @NotNull EntityStorage entityStorage)