package com.limegroup.gnutella.downloader.serial; import java.io.Serializable; import java.net.URI; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class BTMetaInfoMementoImpl implements BTMetaInfoMemento, Serializable { private static final long serialVersionUID = 4808344749443143000L; private Map<String, Object> serialObjects = new HashMap<String, Object>(); @SuppressWarnings("unchecked") public List<byte[]> getHashes() { return (List<byte[]>)serialObjects.get("hashes"); } public void setHashes(List<byte[]> hashes) { serialObjects.put("hashes", hashes); } public int getPieceLength() { Integer i = (Integer)serialObjects.get("pieceLength"); if(i != null) { return i; } else { return 0; } } public void setPieceLength(int pieceLength) { serialObjects.put("pieceLength", pieceLength); } public TorrentFileSystemMemento getFileSystem() { return (TorrentFileSystemMemento)serialObjects.get("fileSystem"); } public void setFileSystem(TorrentFileSystemMemento fileSystem) { serialObjects.put("fileSystem", fileSystem); } public byte[] getInfoHash() { return (byte [])serialObjects.get("infoHash"); } public void setInfoHash(byte[] infoHash) { serialObjects.put("infoHash", infoHash); } public float getRatio() { Float f = (Float)serialObjects.get("ratio"); return f != null ? f : 0f; } public void setRatio(float ratio) { serialObjects.put("ratio", ratio); } public BTDiskManagerMemento getFolderData() { return (BTDiskManagerMemento)serialObjects.get("folderData"); } public void setFolderData(BTDiskManagerMemento folderData) { serialObjects.put("folderData", folderData); } public URI[] getTrackers() { return (URI [])serialObjects.get("trackers"); } public void setTrackers(URI[] trackers) { serialObjects.put("trackers", trackers); } public boolean isPrivate() { Boolean b = (Boolean)serialObjects.get("private"); return b != null ? b : false; } public void setPrivate(boolean aPrivate) { serialObjects.put("private", aPrivate); } @SuppressWarnings("unchecked") public URI[] getWebSeeds() { List<URI> uris = (List<URI>) serialObjects.get("url-list"); return uris == null ? null : uris.toArray(new URI[uris.size()]); } public void setWebSeeds(URI[] webSeeds) { if (webSeeds != null) { List<URI> uris = Arrays.asList(webSeeds); serialObjects.put("url-list", uris); } else { serialObjects.put("url-list", new URI[0]); } } }