extensions/net.sf.basedb.genepattern/trunk/src/net/sf/basedb/genepattern/file/BaseFileProxy.java

Code
Comments
Other
Rev Date Author Line
1107 03 Jun 09 nicklas 1 package net.sf.basedb.genepattern.file;
1107 03 Jun 09 nicklas 2
1107 03 Jun 09 nicklas 3 import java.io.InputStream;
1107 03 Jun 09 nicklas 4 import java.io.OutputStream;
1107 03 Jun 09 nicklas 5
1107 03 Jun 09 nicklas 6 import net.sf.basedb.core.File;
1107 03 Jun 09 nicklas 7
1107 03 Jun 09 nicklas 8 /**
1107 03 Jun 09 nicklas 9   A file proxy implementation for files in the BASE file system.
1107 03 Jun 09 nicklas 10   
1107 03 Jun 09 nicklas 11   @author nicklas
1107 03 Jun 09 nicklas 12   @since 1.0
1107 03 Jun 09 nicklas 13 */
1107 03 Jun 09 nicklas 14 public class BaseFileProxy 
1107 03 Jun 09 nicklas 15   implements FileProxy 
1107 03 Jun 09 nicklas 16 {
1107 03 Jun 09 nicklas 17   private final File file;
1107 03 Jun 09 nicklas 18   
1107 03 Jun 09 nicklas 19   /**
1107 03 Jun 09 nicklas 20     Create a new file proxy for the given BASE file.
1107 03 Jun 09 nicklas 21     @param file A BASE file
1107 03 Jun 09 nicklas 22   */
1107 03 Jun 09 nicklas 23   public BaseFileProxy(File file)
1107 03 Jun 09 nicklas 24   {
1107 03 Jun 09 nicklas 25     this.file = file;
1107 03 Jun 09 nicklas 26   }
1107 03 Jun 09 nicklas 27   
1107 03 Jun 09 nicklas 28   /*
1107 03 Jun 09 nicklas 29      From the FileProxy interface
1107 03 Jun 09 nicklas 30      -----------------------------
1107 03 Jun 09 nicklas 31   */
1107 03 Jun 09 nicklas 32   /**
1107 03 Jun 09 nicklas 33     @return {@link File#getName()}
1107 03 Jun 09 nicklas 34   */
1107 03 Jun 09 nicklas 35   @Override
1107 03 Jun 09 nicklas 36   public String getFileName() 
1107 03 Jun 09 nicklas 37   {
1107 03 Jun 09 nicklas 38     return file.getName();
1107 03 Jun 09 nicklas 39   }
1107 03 Jun 09 nicklas 40
1107 03 Jun 09 nicklas 41   /**
1107 03 Jun 09 nicklas 42     @return {@link File#getDownloadStream(long)}
1107 03 Jun 09 nicklas 43   */
1107 03 Jun 09 nicklas 44   @Override
1107 03 Jun 09 nicklas 45   public InputStream getInputStream() 
1107 03 Jun 09 nicklas 46   {
1107 03 Jun 09 nicklas 47     return file.getDownloadStream(0);
1107 03 Jun 09 nicklas 48   }
1107 03 Jun 09 nicklas 49
1107 03 Jun 09 nicklas 50   /**
1107 03 Jun 09 nicklas 51     Calls {@link File#download(OutputStream, long)} to copy the file.
1107 03 Jun 09 nicklas 52   */
1107 03 Jun 09 nicklas 53   @Override
1107 03 Jun 09 nicklas 54   public void writeTo(OutputStream out) 
1107 03 Jun 09 nicklas 55   {
1107 03 Jun 09 nicklas 56     file.download(out, 0);
1107 03 Jun 09 nicklas 57   }
1107 03 Jun 09 nicklas 58   // ---------------------------------------------
1107 03 Jun 09 nicklas 59 }