package com.limegroup.gnutella.library; import java.io.File; import java.io.FileFilter; import java.util.List; import java.util.Set; import org.limewire.concurrent.ListeningFuture; import org.limewire.listener.SourcedEventMulticaster; import com.google.inject.Inject; import com.google.inject.Singleton; import com.limegroup.gnutella.URN; import com.limegroup.gnutella.downloader.VerifyingFile; import com.limegroup.gnutella.xml.LimeXMLDocument; /** A collection of IncompleteFileDescs. */ @Singleton class IncompleteFileCollectionImpl extends AbstractFileCollection implements IncompleteFileCollection { private LibraryImpl managedList; @Inject public IncompleteFileCollectionImpl(LibraryImpl managedList, SourcedEventMulticaster<FileViewChangeEvent, FileView> multicaster) { super(managedList, multicaster); this.managedList = managedList; } @Override public String getName() { return "Incomplete Collection"; } public void addIncompleteFile(File incompleteFile, Set<? extends URN> urns, String name, long size, VerifyingFile vf) { managedList.addIncompleteFile(incompleteFile, urns, name, size, vf); } @Override public ListeningFuture<FileDesc> add(File file) { throw new UnsupportedOperationException("cannot add from here"); } @Override public ListeningFuture<FileDesc> add(File file, List<? extends LimeXMLDocument> documents) { throw new UnsupportedOperationException("cannot add from here"); } @Override public ListeningFuture<List<ListeningFuture<FileDesc>>> addFolder(File folder, FileFilter fileFilter) { throw new UnsupportedOperationException("cannot add from here"); } @Override protected boolean isFileDescAllowed(FileDesc fileDesc) { return fileDesc instanceof IncompleteFileDesc; } @Override protected boolean isPending(File file, FileDesc fd) { return fd instanceof IncompleteFileDesc; } @Override protected void saveChange(File file, boolean added) { // Don't save incomplete status. } @Override public boolean isFileAllowed(File file) { return true; } @Override public boolean isDirectoryAllowed(File folder) { return false; } }