package com.limegroup.gnutella.downloader.serial;
import java.io.File;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.limewire.collection.Range;
import com.limegroup.gnutella.URN;
import com.limegroup.gnutella.downloader.DownloaderType;
public class InNetworkDownloadMementoImpl implements InNetworkDownloadMemento, Serializable {
private static final long serialVersionUID = -8013513174476895995L;
private Map<String, Object> serialObjects = new HashMap<String, Object>();
public int getDownloadAttempts() {
Integer i = (Integer) serialObjects.get("downloadAttempts");
if (i == null)
return 0;
else
return i;
}
public long getStartTime() {
Long l = (Long) serialObjects.get("startTime");
if (l == null)
return 0;
else
return l;
}
public String getTigerTreeRoot() {
return (String) serialObjects.get("tigerTreeRoot");
}
public void setDownloadAttempts(int downloadAttempts) {
serialObjects.put("downloadAttempts", downloadAttempts);
}
public void setStartTime(long startTime) {
serialObjects.put("startTime", startTime);
}
public void setTigerTreeRoot(String tigerTreeRoot) {
serialObjects.put("tigerTreeRoot", tigerTreeRoot);
}
@SuppressWarnings("unchecked")
public Map<String, Object> getAttributes() {
return (Map<String, Object>) serialObjects.get("attributes");
}
public long getContentLength() {
Long l = (Long) serialObjects.get("contentLength");
if (l == null)
return -1;
else
return l;
}
public String getDefaultFileName() {
return (String) serialObjects.get("defaultFileName");
}
public DownloaderType getDownloadType() {
return (DownloaderType) serialObjects.get("downloadType");
}
public File getIncompleteFile() {
return (File) serialObjects.get("incompleteFile");
}
@SuppressWarnings("unchecked")
public Set<RemoteHostMemento> getRemoteHosts() {
return (Set<RemoteHostMemento>) serialObjects.get("remoteHosts");
}
public File getSaveFile() {
return (File) serialObjects.get("saveFile");
}
public URN getSha1Urn() {
return (URN) serialObjects.get("sha1Urn");
}
public void setAttributes(Map<String, Object> attributes) {
serialObjects.put("attributes", attributes);
}
public void setContentLength(long contentLength) {
serialObjects.put("contentLength", contentLength);
}
public void setDefaultFileName(String defaultFileName) {
serialObjects.put("defaultFileName", defaultFileName);
}
public void setDownloadType(DownloaderType downloaderType) {
serialObjects.put("downloadType", downloaderType);
}
public void setIncompleteFile(File incompleteFile) {
serialObjects.put("incompleteFile", incompleteFile);
}
public void setRemoteHosts(Set<RemoteHostMemento> remoteHosts) {
serialObjects.put("remoteHosts", remoteHosts);
}
@SuppressWarnings("unchecked")
public List<Range> getSavedBlocks() {
return (List<Range>) serialObjects.get("savedBlocks");
}
public void setSavedBlocks(List<Range> serializableBlocks) {
serialObjects.put("savedBlocks", serializableBlocks);
}
public void setSaveFile(File saveFile) {
serialObjects.put("saveFile", saveFile);
}
public void setSha1Urn(URN sha1Urn) {
serialObjects.put("sha1Urn", sha1Urn);
}
}