/**
   * Построение URL для загрузки файла
   *
   * @param reference ссылка JepFileReference, формируемая в бине
   * @return соответствующий URL
   */
  protected String buildDownloadUrl(Object reference) {
    if (reference instanceof JepFileReference) {
      JepFileReference fileReference = (JepFileReference) reference;
      StringBuilder sbUrl = new StringBuilder();

      sbUrl.append(downloadServletUrl);
      sbUrl.append("?");
      sbUrl.append(DOWNLOAD_FIELD_NAME);
      sbUrl.append("=");
      sbUrl.append(getFieldId());
      sbUrl.append("&");
      sbUrl.append(DOWNLOAD_RECORD_KEY);
      sbUrl.append("=");
      sbUrl.append(fileReference.getRecordKey());

      String mimeType = fileReference.getMimeType();
      if (mimeType != null) {
        sbUrl.append("&");
        sbUrl.append(DOWNLOAD_MIME_TYPE);
        sbUrl.append("=");
        sbUrl.append(mimeType);
      } else {
        return null; // При пустом mime-type для Blob-поля считаем, что поле пусто.
      }
      sbUrl.append("&"); // "Защита" от кэширования
      sbUrl.append(viewCount++); // "Защита" от кэширования
      return sbUrl.toString();
    }
    return null;
  }
  /**
   * Получение значения поля.<br>
   * На основе значения карты Редактирования формируется объект наследник {@link
   * com.technology.jep.jepria.shared.record.lob.JepFileReference}.<br>
   * Особенности реализации метода:
   *
   * <ul>
   *   <li>Только если пользователем выбран файл(-ы) для загрузки, тогда ПЕРЕЗАПИСЫВАЕТСЯ имя файла
   *       в {@link #fileReference} вместо значения, которое (возможно) там было изначально
   *       (например: пришло с сервера/из ejb/из базы данных).
   * </ul>
   *
   * <br>
   *
   * @return значение поля - объект наследник {@link
   *     com.technology.jep.jepria.shared.record.lob.JepFileReference}
   */
  @Override
  @SuppressWarnings("unchecked")
  public JepFileReference getValue() {
    String fileName = editableCard.getFilename();
    if (fileReference == null) {
      fileReference = new JepFileReference();
    }

    // Только если пользователем выбран файл(-ы) для загрузки, тогда ПЕРЕЗАПИСЫВАЕМ имя файла в
    // fileReference вместо значения, которое
    // (возможно) там было изначально (например: пришло с сервера/из ejb/из базы данных).
    if (!JepRiaUtil.isEmpty(fileName)) {
      fileReference.setFileName(fileName);
    }

    return fileReference;
  }