@Override
  public @NotNull DiffRequest process(@NotNull UserDataHolder context,
                                      @NotNull ProgressIndicator indicator) throws DiffRequestProducerException, ProcessCanceledException {
    String title = myChange.getRequestName();
    try {
      ShelvedChange shelvedChange = myChange.getShelvedChange();
      if (shelvedChange != null) {
        return createTextShelveRequest(shelvedChange, context, title);
      }

      ShelvedBinaryFile binaryFile = myChange.getBinaryFile();
      if (binaryFile != null) {
        return createBinaryShelveRequest(binaryFile, title);
      }

      throw new IllegalStateException("Empty shelved wrapper: " + myChange);
    }
    catch (VcsException | IOException e) {
      throw new DiffRequestProducerException(VcsBundle.message("changes.error.can.t.show.diff.for", title), e);
    }
  }
@Override
  public @NotNull DiffRequest process(@NotNull UserDataHolder context,
                                      @NotNull ProgressIndicator indicator)