Algorithm for comparing manifest files.

 * This method assumes that the manifest from the server and client have already been received.
 * This should be the case because if either file retrievals failed the logic above will not 
 * call this method. The two hashes below contain the file path & directory of the file to be 
 * downloaded in the key. The value stores the version number of the file indicated in the key. 
 * If the versions numbers differ between the server and client, the file will be downloaded.
 * Also, files that do not exist on the client will be downloaded as well.
public Vector compareManafestFiles()
  Vector downList = new Vector(5);
  Enumeration serverKeys = serverManifestHash.keys();
  while ( serverKeys.hasMoreElements() )
    String serverKey = (String)serverKeys.nextElement();
    if (clientManifestHash.containsKey(serverKey) & fileExists(serverKey) )
      // add to the download list if the values differ 
      if ( !((String)clientManifestHash.get(serverKey)).trim().equals(
        ((String)serverManifestHash.get(serverKey)).trim() ) 

    } else {
    //if the key doesn't exist in the client OR the file does not exist
    // add it to the download list
      System.out.println("Client list does not contain key " + serverKey);

  // always download the manifest file if there are files
  // to be downloaded. 
  if (downList.size() > 0)

  return downList;