public @NotNull T getMutable(@NotNull T item, int index) {
      if (isMutable(item) || !isEditable(item)) {
        return item;
      }
      else {
        T mutable = originalToModified.get(item);
        if (mutable == null) {
          mutable = itemEditor.clone(item, false);
          modifiedToOriginal.put(mutable, item);
          originalToModified.put(item, mutable);
          silentlyReplaceItem(item, mutable, index);
        }
        return mutable;
      }
    }
public @NotNull T getMutable(@NotNull T item, int index)