src/core/net/sf/basedb/util/zip/Bzip2FilePacker.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 import org.apache.tools.bzip2.CBZip2OutputStream;
3641 08 Aug 07 nicklas 30
3641 08 Aug 07 nicklas 31 /**
3641 08 Aug 07 nicklas 32    This class wraps the {@link TarFilePacker} in a BZIP2 stream, creating
3641 08 Aug 07 nicklas 33    a tar.bz2 file.
3641 08 Aug 07 nicklas 34
3641 08 Aug 07 nicklas 35     @author martin, Nicklas
3641 08 Aug 07 nicklas 36     @version 2.4
3641 08 Aug 07 nicklas 37     @base.modified $Date$    
3641 08 Aug 07 nicklas 38 */
3641 08 Aug 07 nicklas 39 public class Bzip2FilePacker 
3641 08 Aug 07 nicklas 40   extends TarFilePacker
3641 08 Aug 07 nicklas 41 {
3641 08 Aug 07 nicklas 42
3641 08 Aug 07 nicklas 43   private CBZip2OutputStream bzip;
3641 08 Aug 07 nicklas 44   
3641 08 Aug 07 nicklas 45   /**
3641 08 Aug 07 nicklas 46     Create a new packer that compresses files with the BZIP2 format.
3641 08 Aug 07 nicklas 47   */
3641 08 Aug 07 nicklas 48   public Bzip2FilePacker()
3641 08 Aug 07 nicklas 49   {}
3641 08 Aug 07 nicklas 50   
3641 08 Aug 07 nicklas 51   /*
3641 08 Aug 07 nicklas 52     From the FilePacker interface
3641 08 Aug 07 nicklas 53     -------------------------------------------
3641 08 Aug 07 nicklas 54   */
3641 08 Aug 07 nicklas 55   /**
3643 08 Aug 07 nicklas 56     @return "BZipped TAR-archive (.tar.bz2)"
3641 08 Aug 07 nicklas 57   */
6127 14 Sep 12 nicklas 58   @Override
3641 08 Aug 07 nicklas 59   public String getDescription()
3641 08 Aug 07 nicklas 60   {
3643 08 Aug 07 nicklas 61     return "BZipped TAR-archive (.tar.bz2)";
3641 08 Aug 07 nicklas 62   }
3641 08 Aug 07 nicklas 63   /**
3641 08 Aug 07 nicklas 64     @return "tar.bz2"
3641 08 Aug 07 nicklas 65   */
6127 14 Sep 12 nicklas 66   @Override
3641 08 Aug 07 nicklas 67   public String getFileExtension()
3641 08 Aug 07 nicklas 68   {
3641 08 Aug 07 nicklas 69     return "tar.bz2";
3641 08 Aug 07 nicklas 70   }
3641 08 Aug 07 nicklas 71   /**
3641 08 Aug 07 nicklas 72     @return "application/x-bzip2"
3641 08 Aug 07 nicklas 73   */
6127 14 Sep 12 nicklas 74   @Override
3641 08 Aug 07 nicklas 75   public String getMimeType()
3641 08 Aug 07 nicklas 76   {
3641 08 Aug 07 nicklas 77     return "application/x-bzip2";
3641 08 Aug 07 nicklas 78   }
3641 08 Aug 07 nicklas 79   /**
3641 08 Aug 07 nicklas 80     Wrap the output stream in a {@link GZIPOutputStream}.
3641 08 Aug 07 nicklas 81   */
6127 14 Sep 12 nicklas 82   @Override
3641 08 Aug 07 nicklas 83   public void setOutputStream(OutputStream out)
3641 08 Aug 07 nicklas 84     throws IOException
3641 08 Aug 07 nicklas 85   {
3641 08 Aug 07 nicklas 86     out.write('B');
3641 08 Aug 07 nicklas 87     out.write('Z');
3641 08 Aug 07 nicklas 88     this.bzip = new CBZip2OutputStream(out);
3641 08 Aug 07 nicklas 89     super.setOutputStream(bzip);
3641 08 Aug 07 nicklas 90   }
3641 08 Aug 07 nicklas 91   /**
3641 08 Aug 07 nicklas 92     Finish the BZIP stream.
3641 08 Aug 07 nicklas 93   */
6127 14 Sep 12 nicklas 94   @Override
3641 08 Aug 07 nicklas 95   public void close()
3641 08 Aug 07 nicklas 96     throws IOException
3641 08 Aug 07 nicklas 97   {
3646 09 Aug 07 nicklas 98     super.close();
3641 08 Aug 07 nicklas 99     bzip = null;
3641 08 Aug 07 nicklas 100   }
3641 08 Aug 07 nicklas 101   // -------------------------------------------
3641 08 Aug 07 nicklas 102
3641 08 Aug 07 nicklas 103 }