public void accept(final DownloadFileDescription download,final Consumer<Integer> progressUpdateListener,final Runnable completionListener,final JProgressBar progressBar){
synchronized (this) {
    if (downloadSet.contains(download)) {
      return;
    }
 else {
      downloadSet.add(download);
    }
  }
  DownloadFile downloadFile=new DownloadFile(download,progressUpdateListener,completionListener);
  Runnable progressBarStarter=null;
  downloadMap.put(downloadFile,progressBarStarter);
}

public void accept ( final DownloadFileDescription download , final Consumer < Integer > progressUpdateListener , final Runnable completionListener , final JProgressBar progressBar ) { synchronized ( this ) { if ( downloadSet . contains ( download ) ) { return ; } else { downloadSet . add ( download ) ; } } DownloadFile downloadFile = new DownloadFile ( download , progressUpdateListener , completionListener ) ; Runnable progressBarStarter = null ; downloadMap . put ( downloadFile , progressBarStarter ) ; }
queues up a download request , sending notification to a progress listener and a final notification to a download complete listener .
