private Map<String, Object> makeVuzeCall(
     DaemonMethod method, String serverMethod, Torrent actOnTorrent, Object[] params)
     throws DaemonException {
   return makeVuzeCall(
       method,
       serverMethod,
       Long.parseLong(actOnTorrent.getUniqueID()),
       params,
       actOnTorrent.getStatusCode());
 }
  @SuppressWarnings("unchecked")
  private List<TorrentFile> onTorrentFilesRetrieved(Object result, Torrent torrent) {

    Map<String, Object> response = (Map<String, Object>) result;

    // We might have an empty list
    if (response == null) {
      return new ArrayList<TorrentFile>();
    }

    // DLog.d(LOG_NAME, response.toString().length() > 300? response.toString().substring(0, 300) +
    // "... (" + response.toString().length() + " chars)": response.toString());

    List<TorrentFile> files = new ArrayList<TorrentFile>();

    // Parse torrent file list from Vuze response, which is a map list of ENTRYs
    for (String key : response.keySet()) {

      /**
       * Every Vuze ENTRY is a map of key-value pairs with information For file lists, it looks
       * something like: ENTRY2={ is_deleted=false, length=298, downloaded=298, is_priority=false,
       * first_piece_number=726, is_skipped=false,
       * file=/var/data/Downloads/Some.Torrent/OneFile.txt, _object_id=443243294889782236,
       * num_pieces=1, access_mode=1 }
       */
      Map<String, Object> info = (Map<String, Object>) response.get(key);
      String file = (String) info.get("file");

      files.add(
          new TorrentFile(
              "" + (Long) info.get("_object_id"),
              new File(file).getName(), // name
              (file.length() > torrent.getLocationDir().length()
                  ? file.substring(torrent.getLocationDir().length())
                  : file), // name
              file, // fullPath
              (Long) info.get("length"), // size
              (Long) info.get("downloaded"), // downloaded
              convertVuzePriority(
                  (String) info.get("is_skipped"), (String) info.get("is_priority")))); // priority
    }

    return files;
  }