IP*Works! ZIP V8

ipworkszip
Class Bzip2

java.lang.Object
  |
  +--ipworkszip.Bzip2

public class Bzip2
extends java.lang.Object

The Bzip2 bean implements a bzip2 compressor and decompressor. It is compliant with the bzip2 specification.

The bzip2 file format is typically used only to archive a single file. Accordingly, the operation of the bean is simpler than that of the other beans.

To compress with the bean, set ArchiveFile to the name of the bzip2 file to be created, and FileDecompressedName to the name of the file to be compressed. Finally, invoke Compress . To extract the file, set ArchiveFile to the bzip2 archive and FileDecompressedName to the file where the bean should extract. Finally, invoke the Extract or Compress method.

Example (Creating a Bzip2 File)

 ZipControl.ArchiveFile = "c:\\test.bz2"
 ZipControl.FileDecompressedName = "c:\\test.txt"
 ZipControl.Compress() 
Example (Extracting from a Bzip2 File)

 ZipControl.ArchiveFile = "c:\\test.bz2"
 ZipControl.FileDecompressedName = "c:\\test.txt"
 ZipControl.Extract() 

The Bzip2 bean includes software developed by the Apache Software Foundation (http://www.apache.org/).


Constructor Summary
Bzip2()
           
 
Method Summary
 void abort()
          Aborts the current operation.
 void addBzip2EventListener(ipworkszip.Bzip2EventListener l)
           
 void append()
          Adds specified file to an existing archive.
 void compress()
          Creates the compressed bzip2 archive.
 java.lang.String config(java.lang.String configurationString)
          Sets or retrieves a configuration setting.
 void extract()
          Extracts the compressed file from the bzip2 archive.
 void extractAll()
          Extracts all files from the compressed archive.
 java.lang.String getArchiveFile()
          The name of the zip, gzip, tar, or jar archive.
 java.lang.String getExtractToPath()
          A base path to decompress to.
 java.lang.String getFileDecompressedName()
          File name to decompress to, or compress from.
 boolean isHasMoreData()
          Shows whether or not there is more data in the bzip2 archive.
 void removeBzip2EventListener(ipworkszip.Bzip2EventListener l)
           
 void scan(javax.servlet.http.HttpServletRequest request)
          Scans the compressed archive.
 void setArchiveFile(java.lang.String archiveFile)
          The name of the zip, gzip, tar, or jar archive.
 void setArchiveInputStream(java.io.InputStream archiveStream)
          The stream to read the zip, tar, jar, or gzip archive from.
 void setArchiveOutputStream(java.io.OutputStream archiveStream)
          The stream to write the zip, tar, jar, or gzip archive to.
 void setExtractToPath(java.lang.String extractToPath)
          A base path to decompress to.
 void setFileDecompressedName(java.lang.String fileDecompressedName)
          File name to decompress to, or compress from.
 void setFileInputStream(java.io.InputStream archiveStream)
          The input stream to read the decompressed data from.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Bzip2

public Bzip2()
Method Detail

getArchiveFile

public java.lang.String getArchiveFile()
The name of the zip, gzip, tar, or jar archive.

This property specifies the name of the archive to be read or written. This property is required when extracting files.

When Scan , Extract , or ExtractAll is invoked, the file specified by ArchiveFile will be opened for read. If the file does not exist, a trappable error will be generated.

When Compress is called, the file named by ArchiveFile will be written; if a file of this name already exists the Overwrite event will be fired. If ArchiveFile is set to the empty string (""), the archive will not be written to disk, and will be provided only through the Progress event.

The filename may be specified with or without a path. Paths may be relative or absolute, and should be specified in the format native to the host operating system. The filename should be specified with the appropriate extension (such as "zip"); an extension will not automatically be appended by the bean.

If the file cannot be read, or written, as appropriate, a trappable error will be generated.

Example (Creating an Archive)

 ZipControl.ArchiveFile = "c:\\test.zip"
 ZipControl.RecurseSubdirectories = true
 ZipControl.IncludeFiles("c:\\foo\\*")
 ZipControl.Compress() 

Note: an archive already open for read may be closed by setting ArchiveFile to the empty string ("").


setArchiveFile

public void setArchiveFile(java.lang.String archiveFile)
                    throws IPWorksZipException
The name of the zip, gzip, tar, or jar archive.

This property specifies the name of the archive to be read or written. This property is required when extracting files.

When Scan , Extract , or ExtractAll is invoked, the file specified by ArchiveFile will be opened for read. If the file does not exist, a trappable error will be generated.

When Compress is called, the file named by ArchiveFile will be written; if a file of this name already exists the Overwrite event will be fired. If ArchiveFile is set to the empty string (""), the archive will not be written to disk, and will be provided only through the Progress event.

The filename may be specified with or without a path. Paths may be relative or absolute, and should be specified in the format native to the host operating system. The filename should be specified with the appropriate extension (such as "zip"); an extension will not automatically be appended by the bean.

If the file cannot be read, or written, as appropriate, a trappable error will be generated.

Example (Creating an Archive)

 ZipControl.ArchiveFile = "c:\\test.zip"
 ZipControl.RecurseSubdirectories = true
 ZipControl.IncludeFiles("c:\\foo\\*")
 ZipControl.Compress() 

Note: an archive already open for read may be closed by setting ArchiveFile to the empty string ("").

IPWorksZipException

getExtractToPath

public java.lang.String getExtractToPath()
A base path to decompress to.

Setting the ExtractToPath property affects the operation of the Extract and ExtractAll methods. Setting this property to a nonempty string will cause all decompressed files to be written to the specified path. If pathnames are given in the values of FileDecompressedName they will be regarded as relative to ExtractToPath .

If the specified directory does not exist, it will be created when extraction is done.

ExtractToPath should always be specified in the format native to the host operating system, and with a trailing slash or backslash. If the path is specified otherwise, it will be immediately converted and stored in the converted format. For example, "/temp" would be immediately converted to "\\temp\\" on a Windows system.


setExtractToPath

public void setExtractToPath(java.lang.String extractToPath)
                      throws IPWorksZipException
A base path to decompress to.

Setting the ExtractToPath property affects the operation of the Extract and ExtractAll methods. Setting this property to a nonempty string will cause all decompressed files to be written to the specified path. If pathnames are given in the values of FileDecompressedName they will be regarded as relative to ExtractToPath .

If the specified directory does not exist, it will be created when extraction is done.

ExtractToPath should always be specified in the format native to the host operating system, and with a trailing slash or backslash. If the path is specified otherwise, it will be immediately converted and stored in the converted format. For example, "/temp" would be immediately converted to "\\temp\\" on a Windows system.

IPWorksZipException

getFileDecompressedName

public java.lang.String getFileDecompressedName()
File name to decompress to, or compress from.

FileDecompressedName contains the name of the file in the archive, as stored on the file system, outside the archive.

When compressing a file, this property should be specified with a path, if necessary, to allow the file to be found by the bean. If the file cannot be found when Compress is called, a trappable error will be generated, and the archive will not be correctly written.

When decompressing files, this property may be set prior to calling Extract . If this property is set to the empty string when Extract is called, Extract will automatically set this property to an appropriate value.

Paths on the local file system should be specified in the format native to the host operating system. They may also be specified in standard (UNIX) format, in which case they will be immediately converted.


setFileDecompressedName

public void setFileDecompressedName(java.lang.String fileDecompressedName)
                             throws IPWorksZipException
File name to decompress to, or compress from.

FileDecompressedName contains the name of the file in the archive, as stored on the file system, outside the archive.

When compressing a file, this property should be specified with a path, if necessary, to allow the file to be found by the bean. If the file cannot be found when Compress is called, a trappable error will be generated, and the archive will not be correctly written.

When decompressing files, this property may be set prior to calling Extract . If this property is set to the empty string when Extract is called, Extract will automatically set this property to an appropriate value.

Paths on the local file system should be specified in the format native to the host operating system. They may also be specified in standard (UNIX) format, in which case they will be immediately converted.

IPWorksZipException

isHasMoreData

public boolean isHasMoreData()
Shows whether or not there is more data in the bzip2 archive.

The bzip2 format allows multiple bzip2 data members to be concatenated into a single file. However, due to the nature of the algorithm it is impossible to determine the number of data members until after the entire archive has been decompressed. The HasMoreData property can be used to cycle through the archive and extract each file.

Simply set the ArchiveFile and ExtractToPath properties, then call Extract as long as the bean has available data.

Note : the bean will not update FileDecompressedName unless you manually set FileDecompressedName before each call to Extract .

Example (Extracting Multiple Files)

 ZipControl.ArchiveFile = "c:\\temp.bz2"
 ZipControl.ExtractToPath = "c:\\unzipped\\"
 Do
   //here you may set the file name in FileDecompressedName prior to extraction
   ZipControl.Extract()
 While ZipControl.HasMoreData 


abort

public void abort()
           throws IPWorksZipException
Aborts the current operation.

Abort may be used to immediately interrupt compression or decompression. Any files partially written by the bean will be deleted.

IPWorksZipException

append

public void append()
            throws IPWorksZipException
Adds specified file to an existing archive.

The file contained in the FileDecompressedName property will be appended to the archive specified by ArchiveFile .

This method may only be used to add files to an existing archive. To add files to a new archive, Compress method should be used.

IPWorksZipException

compress

public void compress()
              throws IPWorksZipException
Creates the compressed bzip2 archive.

Invoking Compress creates the archive specified by ArchiveFile . When the method is called, the file specified by FileDecompressedName will be opened, and the file specified by ArchiveFile will contain the compressed output.

As the data is compressed the Progress event will be fired at regular intervals. This event may be used to stream out the bzip2 file, or to display a progress bar to the user.

IPWorksZipException

config

public java.lang.String config(java.lang.String configurationString)
                        throws IPWorksZipException
Sets or retrieves a configuration setting.

Config is a generic method available in every bean. It is used to set and retrieve configuration settings for the bean.

Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the bean, access to these internal properties is provided through the Config method.

To set a configuration setting named PROPERTY , you must call Config("PROPERTY=VALUE") , where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).

To read (query) the value of a configuration setting, you must call Config("PROPERTY") . The value will be returned as a string.

The bean accepts one or more of the following configuration settings . Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the bean, access to these internal properties is provided through the Config method.

Bzip2 Configuration Settings

CloseStreamAfterCompress
If true, the component will close the output stream after compression
This property is true by default. Therefore, by default, the output stream will be closed after compression is completed. In order to keep streams open after the compression completes, you must set this config to false.
WriteToProgressEvent
Whether or not to write data to the Progress Event
If WriteToProgressEvent is set to true, then all data produced through invocations of Extract , ExtractAll , and Compress will be written to the Progress event as well as to disk. Applications may stream out the compressed or decompressed data by trapping this event and copying the data.If WriteToProgressEvent is set to false, the data will not be streamed out, and the Data parameter of the Progress event will contain null.

By default, this config is set to false.

Base Configuration Settings

GUIAvailable
Tells the bean whether or not a message loop is available for processing events
In a GUI-based application, long-running blocking operations may cause the application to stop responding to input until the operation returns. The bean will attempt to discover whether or not the application has a message loop and, if one is discovered, it will process events in that message loop during any such blocking operation.In some non-GUI applications an invalid message loop may be discovered that will result in errant behavior. In these cases, setting GuiAvailable to false will ensure that the bean does not attempt to process external events.

IPWorksZipException

extract

public void extract()
             throws IPWorksZipException
Extracts the compressed file from the bzip2 archive.

Invoking Extract decompresses the archive specified by ArchiveFile . The compressed file will be extracted, and written to disk.

If FileDecompressedName is set to a nonempty string the file will be written there. Otherwise the bean will automatically set FileDecompressedName to an appropriate value:

If ArchiveFile ends in ".bz2", this filename, less the ".bz2" extension will be used.

If this condition does not hold, ".unzipped" will be appended to ArchiveFile .

IPWorksZipException

extractAll

public void extractAll()
                throws IPWorksZipException
Extracts all files from the compressed archive.

ExtractAll extracts all files from the archive. The file(s) will be extracted to the directory specified by ExtractToPath , and given the names specified by FileDecompressedName .

The BeginFile and EndFile events will be fired before and after each file is extracted, and the Progress event will be fired as the data is extracted. If WriteToProgressEvent is set to true, the decompressed data will be streamed out through the Progress event.

IPWorksZipException

scan

public void scan(javax.servlet.http.HttpServletRequest request)
          throws IPWorksZipException
Scans the compressed archive.

This method will scan the bzip archive specified by ArchiveFile . The archive will be read, and the header will be checked.

Unlike in the Zip , Tar , and Jar beans, it is never necessary to invoke this method, and it will not be automatically invoked by Extract . Suggested uses for this method would be to check that the file is a bzip file.

IPWorksZipException

setArchiveInputStream

public void setArchiveInputStream(java.io.InputStream archiveStream)
                           throws IPWorksZipException
The stream to read the zip, tar, jar, or gzip archive from.

This method should be set when the archive is to be read from a stream when Extract is called.

By default, and when this is set to null, the bean will read from the file specified by ArchiveFile . However, when this is a valid stream, the data will be read from the stream.

IPWorksZipException

setArchiveOutputStream

public void setArchiveOutputStream(java.io.OutputStream archiveStream)
                            throws IPWorksZipException
The stream to write the zip, tar, jar, or gzip archive to.

This method should be set when the archive is to be written to a stream when Compress is called.

By default, and when this is set to null, the bean will write to the file specified by ArchiveFile . However, when this is a valid stream, the data will be written to the stream.

IPWorksZipException

setFileInputStream

public void setFileInputStream(java.io.InputStream archiveStream)
                        throws IPWorksZipException
The input stream to read the decompressed data from.

When this method is set to a valid stream, the bean will read in the data from the stream as the current file instead of reading from the file contained in the FileDecompressedName property.

IPWorksZipException

addBzip2EventListener

public void addBzip2EventListener(ipworkszip.Bzip2EventListener l)
                           throws java.util.TooManyListenersException
java.util.TooManyListenersException

removeBzip2EventListener

public void removeBzip2EventListener(ipworkszip.Bzip2EventListener l)

IP*Works! ZIP V8

Copyright (c) 2011 /n software inc. - All rights reserved.