extensions/net.sf.basedb.genepattern/trunk/src/net/sf/basedb/genepattern/file/NativeFileProxy.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.BufferedInputStream;
1107 03 Jun 09 nicklas 4 import java.io.FileInputStream;
1107 03 Jun 09 nicklas 5 import java.io.IOException;
1107 03 Jun 09 nicklas 6 import java.io.InputStream;
1107 03 Jun 09 nicklas 7 import java.io.OutputStream;
1107 03 Jun 09 nicklas 8 import java.io.File;
1107 03 Jun 09 nicklas 9
1107 03 Jun 09 nicklas 10 import net.sf.basedb.util.FileUtil;
1107 03 Jun 09 nicklas 11
1107 03 Jun 09 nicklas 12 /**
1107 03 Jun 09 nicklas 13   A file proxy implementation for files in the native file system.
1107 03 Jun 09 nicklas 14   
1107 03 Jun 09 nicklas 15   @author nicklas
1107 03 Jun 09 nicklas 16   @since 1.0
1107 03 Jun 09 nicklas 17 */
1107 03 Jun 09 nicklas 18 public class NativeFileProxy 
1107 03 Jun 09 nicklas 19   implements FileProxy 
1107 03 Jun 09 nicklas 20 {
1107 03 Jun 09 nicklas 21   private final File file;
1107 03 Jun 09 nicklas 22   
1107 03 Jun 09 nicklas 23   /**
1107 03 Jun 09 nicklas 24     Create a new file proxy for the given native file.
1107 03 Jun 09 nicklas 25     @param file A native file
1107 03 Jun 09 nicklas 26   */
1107 03 Jun 09 nicklas 27   public NativeFileProxy(File file)
1107 03 Jun 09 nicklas 28   {
1107 03 Jun 09 nicklas 29     this.file = file;
1107 03 Jun 09 nicklas 30   }
1107 03 Jun 09 nicklas 31   
1107 03 Jun 09 nicklas 32   /*
1107 03 Jun 09 nicklas 33      From the FileProxy interface
1107 03 Jun 09 nicklas 34      -----------------------------
1107 03 Jun 09 nicklas 35   */
1107 03 Jun 09 nicklas 36   /**
1107 03 Jun 09 nicklas 37     @return {@link File#getName()}
1107 03 Jun 09 nicklas 38   */
1107 03 Jun 09 nicklas 39   @Override
1107 03 Jun 09 nicklas 40   public String getFileName() 
1107 03 Jun 09 nicklas 41   {
1107 03 Jun 09 nicklas 42     return file.getName();
1107 03 Jun 09 nicklas 43   }
1107 03 Jun 09 nicklas 44
1107 03 Jun 09 nicklas 45   /**
1107 03 Jun 09 nicklas 46     @return A buffered {@link FileInputStream}
1107 03 Jun 09 nicklas 47   */
1107 03 Jun 09 nicklas 48   @Override
1107 03 Jun 09 nicklas 49   public InputStream getInputStream() 
1107 03 Jun 09 nicklas 50     throws IOException
1107 03 Jun 09 nicklas 51   {
1107 03 Jun 09 nicklas 52     return new BufferedInputStream(new FileInputStream(file));
1107 03 Jun 09 nicklas 53   }
1107 03 Jun 09 nicklas 54
1107 03 Jun 09 nicklas 55   /**
1107 03 Jun 09 nicklas 56     Copies the file to the output stream.
1107 03 Jun 09 nicklas 57   */
1107 03 Jun 09 nicklas 58   @Override
1107 03 Jun 09 nicklas 59   public void writeTo(OutputStream out) 
1107 03 Jun 09 nicklas 60     throws IOException
1107 03 Jun 09 nicklas 61   {
1107 03 Jun 09 nicklas 62     FileUtil.copy(getInputStream(), out);
1107 03 Jun 09 nicklas 63   }
1107 03 Jun 09 nicklas 64   // ---------------------------------------------
1107 03 Jun 09 nicklas 65 }