/**
   * Построение 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;
  }