public @NotNull List<T> apply() {
    final List<T> items = getItems();
    if (!helper.hasModifiedItems()) {
      return items;
    }

    helper.process((newItem, oldItem) -> {
      itemEditor.applyModifiedProperties(newItem, oldItem);
      silentlyReplaceItem(newItem, oldItem, -1);
      return true;
    });

    helper.reset(items);
    return items;
  }
public @NotNull List<T> apply()