src/core/net/sf/basedb/util/zip/GzipFilePacker.java

Code
Comments
Other
Rev Date Author Line
3641 08 Aug 07 nicklas 1 /**
3641 08 Aug 07 nicklas 2 $Id$
3641 08 Aug 07 nicklas 3
3675 16 Aug 07 jari 4 Copyright (C) 2007 Nicklas Nordborg
3641 08 Aug 07 nicklas 5
3641 08 Aug 07 nicklas 6 This file is part of BASE - BioArray Software Environment.
3641 08 Aug 07 nicklas 7 Available at http://base.thep.lu.se/
3641 08 Aug 07 nicklas 8
3641 08 Aug 07 nicklas 9 BASE is free software; you can redistribute it and/or modify it
3641 08 Aug 07 nicklas 10 under the terms of the GNU General Public License as published by
4479 05 Sep 08 jari 11 the Free Software Foundation; either version 3 of the License, or
3641 08 Aug 07 nicklas 12 (at your option) any later version.
3641 08 Aug 07 nicklas 13
3641 08 Aug 07 nicklas 14 BASE is distributed in the hope that it will be useful, but
3641 08 Aug 07 nicklas 15 WITHOUT ANY WARRANTY; without even the implied warranty of
3641 08 Aug 07 nicklas 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
3641 08 Aug 07 nicklas 17 General Public License for more details.
3641 08 Aug 07 nicklas 18
3641 08 Aug 07 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/>.
3641 08 Aug 07 nicklas 21 */
3641 08 Aug 07 nicklas 22
3641 08 Aug 07 nicklas 23 package net.sf.basedb.util.zip;
3641 08 Aug 07 nicklas 24
3641 08 Aug 07 nicklas 25 import java.io.IOException;
3641 08 Aug 07 nicklas 26 import java.io.OutputStream;
3641 08 Aug 07 nicklas 27 import java.util.zip.GZIPOutputStream;
3641 08 Aug 07 nicklas 28
3641 08 Aug 07 nicklas 29 /**
3641 08 Aug 07 nicklas 30    This class wraps the {@link TarFilePacker} in a GZIP stream, creating
3641 08 Aug 07 nicklas 31    a tar.gz file.
3641 08 Aug 07 nicklas 32
3641 08 Aug 07 nicklas 33     @author martin, Nicklas
3641 08 Aug 07 nicklas 34     @version 2.4
3641 08 Aug 07 nicklas 35     @base.modified $Date$    
3641 08 Aug 07 nicklas 36 */
3641 08 Aug 07 nicklas 37 public class GzipFilePacker 
3641 08 Aug 07 nicklas 38   extends TarFilePacker
3641 08 Aug 07 nicklas 39 {
3641 08 Aug 07 nicklas 40
3641 08 Aug 07 nicklas 41   private GZIPOutputStream gzip;
3641 08 Aug 07 nicklas 42   
3641 08 Aug 07 nicklas 43   /**
3641 08 Aug 07 nicklas 44     Create a new packer that compresses files with the gzip format.
3641 08 Aug 07 nicklas 45   */
3641 08 Aug 07 nicklas 46   public GzipFilePacker()
3641 08 Aug 07 nicklas 47   {}
3641 08 Aug 07 nicklas 48   
3641 08 Aug 07 nicklas 49   /*
3641 08 Aug 07 nicklas 50     From the FilePacker interface
3641 08 Aug 07 nicklas 51     -------------------------------------------
3641 08 Aug 07 nicklas 52   */
3641 08 Aug 07 nicklas 53   /**
3643 08 Aug 07 nicklas 54     @return "GZipped TAR-archive (.tar.gz)"
3641 08 Aug 07 nicklas 55   */
6127 14 Sep 12 nicklas 56   @Override
3641 08 Aug 07 nicklas 57   public String getDescription()
3641 08 Aug 07 nicklas 58   {
3643 08 Aug 07 nicklas 59     return "GZipped TAR-archive (.tar.gz)";
3641 08 Aug 07 nicklas 60   }
3641 08 Aug 07 nicklas 61   /**
3641 08 Aug 07 nicklas 62     @return "tar.gz"
3641 08 Aug 07 nicklas 63   */
6127 14 Sep 12 nicklas 64   @Override
3641 08 Aug 07 nicklas 65   public String getFileExtension()
3641 08 Aug 07 nicklas 66   {
3641 08 Aug 07 nicklas 67     return "tar.gz";
3641 08 Aug 07 nicklas 68   }
3641 08 Aug 07 nicklas 69   /**
3641 08 Aug 07 nicklas 70     @return "application/x-gzip"
3641 08 Aug 07 nicklas 71   */
6127 14 Sep 12 nicklas 72   @Override
3641 08 Aug 07 nicklas 73   public String getMimeType()
3641 08 Aug 07 nicklas 74   {
3641 08 Aug 07 nicklas 75     return "application/x-gzip";
3641 08 Aug 07 nicklas 76   }
3641 08 Aug 07 nicklas 77   /**
3641 08 Aug 07 nicklas 78     Wrap the output stream in a {@link GZIPOutputStream}.
3641 08 Aug 07 nicklas 79   */
6127 14 Sep 12 nicklas 80   @Override
3641 08 Aug 07 nicklas 81   public void setOutputStream(OutputStream out)
3641 08 Aug 07 nicklas 82     throws IOException
3641 08 Aug 07 nicklas 83   {
3641 08 Aug 07 nicklas 84     this.gzip = new GZIPOutputStream(out);
3641 08 Aug 07 nicklas 85     super.setOutputStream(gzip);
3641 08 Aug 07 nicklas 86   }
3641 08 Aug 07 nicklas 87   /**
3641 08 Aug 07 nicklas 88     Finish the GZIP stream.
3641 08 Aug 07 nicklas 89   */
6127 14 Sep 12 nicklas 90   @Override
3641 08 Aug 07 nicklas 91   public void close()
3641 08 Aug 07 nicklas 92     throws IOException
3641 08 Aug 07 nicklas 93   {
3646 09 Aug 07 nicklas 94     super.close();
3641 08 Aug 07 nicklas 95     gzip = null;
3641 08 Aug 07 nicklas 96   }
3641 08 Aug 07 nicklas 97   // -------------------------------------------
3641 08 Aug 07 nicklas 98
3641 08 Aug 07 nicklas 99 }