docs: private void populateStatusRows()
    {
      for (Map.Entry<String, FileMetadata> entry : fileMetadataMap.entrySet())
      {
        FileMetadata fileMetadata = entry.getValue();
  
        if (commandType == CommandType.UPLOAD)
        {
          statusRows.add(showEncryptionParameter ?
                         new UploadCommandEncryptionFacade(
                             fileMetadata.srcFileName,
                             fileMetadata.destFileName,
                             fileMetadata.resultStatus.name(),
                             fileMetadata.errorDetails,
                             fileMetadata.srcFileSize,
                             fileMetadata.destFileSize,
                             (fileMetadata.srcCompressionType == null) ?
                             "NONE" : fileMetadata.srcCompressionType.name(),
                             (fileMetadata.destCompressionType == null) ?
                             "NONE" : fileMetadata.destCompressionType.name(),
                             fileMetadata.isEncrypted) :
                         new UploadCommandFacade(
                             fileMetadata.srcFileName,
                             fileMetadata.destFileName,
                             fileMetadata.resultStatus.name(),
                             fileMetadata.errorDetails,
                             fileMetadata.srcFileSize,
                             fileMetadata.destFileSize,
                             (fileMetadata.srcCompressionType == null) ?
                             "NONE" : fileMetadata.srcCompressionType.name(),
                             (fileMetadata.destCompressionType == null) ?
                             "NONE" : fileMetadata.destCompressionType.name()));
        }
        else if (commandType == CommandType.DOWNLOAD)
        {
          statusRows.add(showEncryptionParameter ?
                         new DownloadCommandEncryptionFacade(
                             fileMetadata.srcFileName.startsWith("/") ?
                             fileMetadata.srcFileName.substring(1) :
                             fileMetadata.srcFileName,
                             fileMetadata.resultStatus.name(),
                             fileMetadata.errorDetails,
                             fileMetadata.destFileSize,
                             fileMetadata.isEncrypted) :
                         new DownloadCommandFacade(
                             fileMetadata.srcFileName.startsWith("/") ?
                             fileMetadata.srcFileName.substring(1) :
                             fileMetadata.srcFileName,
                             fileMetadata.resultStatus.name(),
                             fileMetadata.errorDetails,
                             fileMetadata.destFileSize));
        }
  
      }
  
      /* we sort the result if the connection is in sorting mode
       */
      Object sortProperty = null;
  
      sortProperty =
          connection.getSFSessionProperty("sort");
  
      boolean sortResult = sortProperty != null && (Boolean) sortProperty;
  
      if (sortResult)
      {
        Comparator comparator =
            (commandType == CommandType.UPLOAD) ?
            new Comparator<Object>()
            {
              public int compare(Object a, Object b)
              {
                String srcFileNameA = ((UploadCommandFacade) a).srcFile;
                String srcFileNameB = ((UploadCommandFacade) b).srcFile;
  
                return srcFileNameA.compareTo(srcFileNameB);
              }
            } :
            new Comparator<Object>()
            {
              public int compare(Object a, Object b)
              {
                String srcFileNameA = ((DownloadCommandFacade) a).file;
                String srcFileNameB = ((DownloadCommandFacade) b).file;
  
                return srcFileNameA.compareTo(srcFileNameB);
              }
            };
  
        // sort the rows by source file names
        Collections.sort(statusRows, comparator);
      }
    }