package com.limegroup.gnutella.library;
import java.io.File;
import java.util.Set;
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.licenses.LicenseFactory;
@Singleton
class FileDescFactoryImpl implements FileDescFactory {
private final RareFileStrategy rareFileStrategy;
private final SourcedEventMulticaster<FileDescChangeEvent, FileDesc> multicaster;
private final LicenseFactory licenseFactory;
@Inject
public FileDescFactoryImpl(RareFileStrategy rareFileStrategy,
SourcedEventMulticaster<FileDescChangeEvent, FileDesc> multicaster,
LicenseFactory licenseFactory) {
this.rareFileStrategy = rareFileStrategy;
this.multicaster = multicaster;
this.licenseFactory = licenseFactory;
}
@Override
public FileDesc createFileDesc(File file, Set<? extends URN> urns, int index) {
return new FileDescImpl(rareFileStrategy, licenseFactory, multicaster, file, urns, index);
}
@Override
public IncompleteFileDesc createIncompleteFileDesc(File file, Set<? extends URN> urns,
int index, String completedName, long completedSize, VerifyingFile vf) {
return new IncompleteFileDescImpl(rareFileStrategy, licenseFactory, multicaster, file, urns,
index, completedName, completedSize, vf);
}
}