package com.limegroup.gnutella.library; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import org.limewire.listener.EventListener; import com.limegroup.gnutella.URN; import com.limegroup.gnutella.UrnSet; import com.limegroup.gnutella.licenses.License; import com.limegroup.gnutella.xml.LimeXMLDocument; public class FileDescStub implements FileDesc { public static final String DEFAULT_URN = "urn:sha1:PLSTHIPQGSSZTS5FJUPAKUZWUGYQYPFB"; public static final URN DEFAULT_SHA1; public static final Set<URN> DEFAULT_SET; public static final int DEFAULT_SIZE = 1126400; static { DEFAULT_SET = new HashSet<URN>(); URN sha1 = null; try { sha1 = URN.createSHA1Urn(DEFAULT_URN); } catch(IOException ioe) { throw new RuntimeException(ioe); } DEFAULT_SHA1 = sha1; DEFAULT_SET.add(DEFAULT_SHA1); } public FileDescStub() { this("abc.txt"); } public FileDescStub(String name) { this(name, DEFAULT_SHA1, 0); } private final File file; private final Set<URN> urns; private final int index; private final String name; private final String path; private final long modified; private final long size; public FileDescStub(String name, URN urn, int index) { this.file = createStubFile(new File(name)); this.urns = new UrnSet(urn); this.index = index; this.name = name; this.path = file.getAbsolutePath(); this.modified = file.lastModified(); this.size = file.length(); } protected static File createStubFile(File file) { if (!file.exists()) { try { OutputStream out = new BufferedOutputStream( new FileOutputStream(file)); file.deleteOnExit(); try { int length = DEFAULT_SIZE; for (int i = 0; i < length; i++) { out.write('a'); } } finally { out.close(); } } catch (IOException e) { throw new RuntimeException(e); } } return file; } @Override public long getFileSize() { return size; } @Override public void addLimeXMLDocument(LimeXMLDocument doc) { // TODO Auto-generated method stub } @Override public boolean containsUrn(URN urn) { return urns.contains(urn); } @Override public void decrementShareListCount() { // TODO Auto-generated method stub } @Override public int getAttemptedUploads() { // TODO Auto-generated method stub return 0; } @Override public int getCompletedUploads() { // TODO Auto-generated method stub return 0; } @Override public File getFile() { return file; } @Override public String getFileName() { return name; } @Override public int getHitCount() { // TODO Auto-generated method stub return 0; } @Override public int getIndex() { return index; } @Override public long getLastAttemptedUploadTime() { // TODO Auto-generated method stub return 0; } @Override public License getLicense() { // TODO Auto-generated method stub return null; } @Override public List<LimeXMLDocument> getLimeXMLDocuments() { return Collections.emptyList(); } @Override public String getPath() { return path; } @Override public URN getSHA1Urn() { return UrnSet.getSha1(urns); } @Override public int getShareListCount() { // TODO Auto-generated method stub return 0; } @Override public URN getTTROOTUrn() { // TODO Auto-generated method stub return null; } @Override public Set<URN> getUrns() { return urns; } @Override public LimeXMLDocument getXMLDocument() { // TODO Auto-generated method stub return null; } @Override public LimeXMLDocument getXMLDocument(String schemaURI) { // TODO Auto-generated method stub return null; } @Override public int incrementAttemptedUploads() { // TODO Auto-generated method stub return 0; } @Override public int incrementCompletedUploads() { // TODO Auto-generated method stub return 0; } @Override public int incrementHitCount() { // TODO Auto-generated method stub return 0; } @Override public void incrementShareListCount() { // TODO Auto-generated method stub } @Override public boolean isLicensed() { // TODO Auto-generated method stub return false; } @Override public boolean isRareFile() { // TODO Auto-generated method stub return false; } @Override public boolean isSharedWithGnutella() { // TODO Auto-generated method stub return false; } @Override public boolean isStoreFile() { // TODO Auto-generated method stub return false; } @Override public long lastModified() { return modified; } @Override public boolean removeLimeXMLDocument(LimeXMLDocument toRemove) { // TODO Auto-generated method stub return false; } @Override public boolean replaceLimeXMLDocument(LimeXMLDocument oldDoc, LimeXMLDocument newDoc) { // TODO Auto-generated method stub return false; } @Override public void setSharedWithGnutella(boolean b) { // TODO Auto-generated method stub } @Override public void setStoreFile(boolean b) { // TODO Auto-generated method stub } @Override public void setTTRoot(URN ttroot) { } @Override public String lookup(String key) { // TODO Auto-generated method stub return null; } @Override public void addListener(EventListener<FileDescChangeEvent> listener) { // TODO Auto-generated method stub } @Override public boolean removeListener(EventListener<FileDescChangeEvent> listener) { // TODO Auto-generated method stub return false; } @Override public Object getClientProperty(String property) { // TODO Auto-generated method stub return null; } @Override public void putClientProperty(String property, Object value) { // TODO Auto-generated method stub } }