src/core/net/sf/basedb/util/FileExportOutputStream.java

Code
Comments
Other
Rev Date Author Line
2854 02 Nov 06 nicklas 1 /**
2854 02 Nov 06 nicklas 2   $Id$
2854 02 Nov 06 nicklas 3
3675 16 Aug 07 jari 4   Copyright (C) 2006 Nicklas Nordborg
2854 02 Nov 06 nicklas 5
2854 02 Nov 06 nicklas 6   This file is part of BASE - BioArray Software Environment.
2854 02 Nov 06 nicklas 7   Available at http://base.thep.lu.se/
2854 02 Nov 06 nicklas 8
2854 02 Nov 06 nicklas 9   BASE is free software; you can redistribute it and/or
2854 02 Nov 06 nicklas 10   modify it under the terms of the GNU General Public License
4479 05 Sep 08 jari 11   as published by the Free Software Foundation; either version 3
2854 02 Nov 06 nicklas 12   of the License, or (at your option) any later version.
2854 02 Nov 06 nicklas 13
2854 02 Nov 06 nicklas 14   BASE is distributed in the hope that it will be useful,
2854 02 Nov 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
2854 02 Nov 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2854 02 Nov 06 nicklas 17   GNU General Public License for more details.
2854 02 Nov 06 nicklas 18
2854 02 Nov 06 nicklas 19   You should have received a copy of the GNU General Public License
4515 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2854 02 Nov 06 nicklas 21 */
2854 02 Nov 06 nicklas 22 package net.sf.basedb.util;
2854 02 Nov 06 nicklas 23
2854 02 Nov 06 nicklas 24 import net.sf.basedb.core.File;
2854 02 Nov 06 nicklas 25 import net.sf.basedb.core.plugin.ExportOutputStream;
2854 02 Nov 06 nicklas 26
2854 02 Nov 06 nicklas 27 /**
2854 02 Nov 06 nicklas 28    An extension to the {@link ExportOutputStream} class which 
2854 02 Nov 06 nicklas 29    directs the output to a {@link File} in BASE.
2854 02 Nov 06 nicklas 30
2854 02 Nov 06 nicklas 31   @author nicklas
2854 02 Nov 06 nicklas 32   @version 2.2
2854 02 Nov 06 nicklas 33   @base.modified $Date$
2854 02 Nov 06 nicklas 34   @see net.sf.basedb.core.plugin.ImmediateDownloadExporter
2854 02 Nov 06 nicklas 35 */
2854 02 Nov 06 nicklas 36 public class FileExportOutputStream
2854 02 Nov 06 nicklas 37   extends ExportOutputStream
2854 02 Nov 06 nicklas 38 {
2854 02 Nov 06 nicklas 39   private final File file;
2854 02 Nov 06 nicklas 40   private final boolean ignoreFilename;
2854 02 Nov 06 nicklas 41
2854 02 Nov 06 nicklas 42   /**
2854 02 Nov 06 nicklas 43     Create a new export stream that writes the exported data to 
2854 02 Nov 06 nicklas 44     a file in the BASE filesystem
2854 02 Nov 06 nicklas 45     @param file The file to write to
2854 02 Nov 06 nicklas 46     @param ignoreFilename If calls to the {@link #setFilename(String)}
2854 02 Nov 06 nicklas 47       should be ignored or not
2854 02 Nov 06 nicklas 48   */
2854 02 Nov 06 nicklas 49   public FileExportOutputStream(File file, boolean ignoreFilename)
2854 02 Nov 06 nicklas 50   {
2854 02 Nov 06 nicklas 51     super(file.getUploadStream(false));
2854 02 Nov 06 nicklas 52     this.file = file;
2854 02 Nov 06 nicklas 53     this.ignoreFilename = ignoreFilename;
2854 02 Nov 06 nicklas 54   }
2854 02 Nov 06 nicklas 55   
2854 02 Nov 06 nicklas 56   /*
2854 02 Nov 06 nicklas 57      From the ExportOutputStream class
2854 02 Nov 06 nicklas 58      ---------------------------------
2854 02 Nov 06 nicklas 59   */
2854 02 Nov 06 nicklas 60   /**
2854 02 Nov 06 nicklas 61     Ignored. File size is calculated from the number of bytes written 
2854 02 Nov 06 nicklas 62     to the file.
2854 02 Nov 06 nicklas 63   */
2854 02 Nov 06 nicklas 64   @Override
2854 02 Nov 06 nicklas 65   public void setContentLength(long contentLength)
2854 02 Nov 06 nicklas 66   {}
2854 02 Nov 06 nicklas 67   /**
2854 02 Nov 06 nicklas 68     Calls {@link File#setMimeType(String)}
2854 02 Nov 06 nicklas 69   */
2854 02 Nov 06 nicklas 70   @Override
2854 02 Nov 06 nicklas 71   public void setMimeType(String mimeType)
2854 02 Nov 06 nicklas 72   {
2854 02 Nov 06 nicklas 73     file.setMimeType(mimeType);
2854 02 Nov 06 nicklas 74   }
2854 02 Nov 06 nicklas 75   /**
4523 15 Sep 08 nicklas 76     Calls {@link File#setCharacterSet(String)}
4523 15 Sep 08 nicklas 77     @since 2.9
4523 15 Sep 08 nicklas 78   */
4523 15 Sep 08 nicklas 79   @Override
4523 15 Sep 08 nicklas 80   public void setCharacterSet(String charset)
4523 15 Sep 08 nicklas 81   {
4523 15 Sep 08 nicklas 82     file.setCharacterSet(charset);
4523 15 Sep 08 nicklas 83   }
4523 15 Sep 08 nicklas 84   /**
2854 02 Nov 06 nicklas 85     Calls {@link File#setName(String)} unless file names should
2854 02 Nov 06 nicklas 86     be ignored.
2854 02 Nov 06 nicklas 87   */
2854 02 Nov 06 nicklas 88   @Override
2854 02 Nov 06 nicklas 89   public void setFilename(String filename)
2854 02 Nov 06 nicklas 90   {
2854 02 Nov 06 nicklas 91     if (!ignoreFilename) file.setName(filename);
2854 02 Nov 06 nicklas 92   }
4791 25 Feb 09 nicklas 93
4791 25 Feb 09 nicklas 94   /**
4791 25 Feb 09 nicklas 95     @return The file given to the constructor.
4791 25 Feb 09 nicklas 96   */
4791 25 Feb 09 nicklas 97   @Override
4791 25 Feb 09 nicklas 98   public File getFile()
4791 25 Feb 09 nicklas 99   {
4791 25 Feb 09 nicklas 100     return file;
4791 25 Feb 09 nicklas 101   }
2854 02 Nov 06 nicklas 102   // -------------------------------------------
2854 02 Nov 06 nicklas 103 }