package org.limewire.core.api.upload;
import java.beans.PropertyChangeListener;
import java.util.List;
import ca.odell.glazedlists.EventList;
/**
* Defines the manager API for the list of uploads.
*/
public interface UploadListManager {
/** Property name for uploads completed event. */
public static final String UPLOADS_COMPLETED = "uploadsCompleted";
/**
* Returns a list of all items being uploaded.
*/
List<UploadItem> getUploadItems();
/**
* Returns a Swing-thread safe version of the uploads event list.
*/
EventList<UploadItem> getSwingThreadSafeUploads();
/**
* Adds the specified listener to the list that is notified when a
* property value changes.
*/
public void addPropertyChangeListener(PropertyChangeListener listener);
/**
* Removes the specified listener from the list that is notified when a
* property value changes.
*/
public void removePropertyChangeListener(PropertyChangeListener listener);
/**
* Checks for uploads in progress, and fires a property change event if
* all uploads are completed.
*/
public void updateUploadsCompleted();
/**
* Clears all completed uploads from the list.
*/
public void clearFinished();
/**Removes item from list.*/
void remove(UploadItem item);
}