At4JUnzipTF

Extract the contents of a Zip archive to a directory.

Task package:org.at4j
Java package:org.schmant.task.at4j.zip
Category:Archiving tasks
Since:0.9
EntityFS-aware?Yes*
Implements:ActionTaskFactory
GeneratorTaskFactory
ProcessTaskFactory
Produces:DirectoryView (the target).
See also:ZipTF
At4JZipTF

Description:

This task extracts the contents of a Zip archive using At4J's ArchiveExtractor class. No metadata from the archive is transferred to the created files and directories.

Note on character encodings in Zip files: It is not specified in any of the Zip specification documents which character encoding to use when encoding text data in a Zip file. Windows programs (7-Zip, WinZip) use Codepage 437 to encode file names, and the platform's default charset (often Codepage 1252) for other text information such as entry comments. Unix programs use the platform's default character encoding (often UTF-8) for both file names and other text data.

Required properties

Properties

fileNameEncodingCharsettop

The charset that file names in the Zip file are encoded in.

Setter method:
setFileNameEncodingCharset(Charset cs)
parameters:
cs – The charset.
Setter method:
setFileNameEncodingCharset(String name)
parameters:
name – The name of the charset.
Default value:
The platform's default charset.
See also:
textEncodingCharset
filtertop

Filter that is used to select which entries to extract. There are a number of filters of this type in At4J. All implement ArchiveEntryFilter and ConvenientFilter.

Setter method:
setFilter(Filter<? super ArchiveEntry<?, ?>> f)
parameters:
f – The filter.
Default value:
No filter (All entries are extracted.)
logFootertop

The message that is logged to info level after the task has been successfully run.

Setter method:
setLogFooter(String s)
parameters:
s – The footer message.
Default value:
Empty (no footer message is logged.)
See also:
logHeader
logHeadertop

The message that is logged to info level before the task is run.

Setter method:
setLogHeader(String s)
parameters:
s – The header message.
Default value:
A task class specific message.
See also:
logFooter
overwriteStrategytop

The overwrite strategy decides how the task will react if there already is an entity (file or directory) in a location where it wants to create a new entity.

If the strategy is to not overwrite existing entities, the task will fail when it cannot create the entities that it wants to create.

Non-empty directories are never overwritten, regardless of the chosen strategy.

Setter method:
setOverwrite(boolean b)
Setting this to a value of true means that the DoOverwriteAndLogWarning strategy is used. A value of false gives the DontOverwriteAndThrowException strategy.
parameters:
b – Should an existing entity be overwritten?
Setter method:
setOverwriteStrategy(OverwriteStrategy strat)
Set the overwrite strategy.
parameters:
strat – The overwrite strategy.
Default value:
DontOverwriteAndThrowException
See also:
target
reportLeveltop

This property is used to change the Report level for all task created by this task factory. The report level is changed for the thread running the task when the it is run, and is restored to its previous level when the it is done.

Setter method:
setReportLevel(Level l)
Set the report level
parameters:
l – The new report level.
source (required)top

The Zip file.

Setter method:
setSource(Object o)
parameters:
o – The Zip file.
Interpreted by InterpretAsRandomlyAccessibleFileStrategy.
target (required)top

The directory into which to extract the Zip file.

Setter method:
setTarget(Object o)
parameters:
o – The target directory.
Interpreted by InterpretAsDirectoryStrategy.
See also:
overwriteStrategy
textEncodingCharsettop

The charset that text such as comments in the Zip file are encoded in.

Setter method:
setTextEncodingCharset(Charset cs)
parameters:
cs – The charset.
Setter method:
setTextEncodingCharset(String name)
parameters:
name – The name of the charset.
Default value:
The platform's default charset.
See also:
fileNameEncodingCharset
traceLoggingtop

If trace logging is enabled for a task, it reports its configuration before it is run.

Trace logging may also be enabled globally for all tasks by calling TraceMode.setTraceMode(boolean).

Setter method:
setTraceLogging(boolean b)
Enable or disable trace logging.
parameters:
b – Enable trace logging?

Examples

Example 1

Extract the contents from the Zip file zf into the directory target.

enableTaskPackage("org.at4j"); new At4JUnzipTF(). // The Zip file. This may for instance be a Java File or an EntityFS EFile. setSource(zf). // The target directory. This may for instance be a Java File directory or an // EntityFS Directory. setTarget(target). run();

Example 2

Extract only the text files from the Zip file zf into the directory target.

enableTaskPackage("org.at4j"); new At4JUnzipTF(). // The Zip file. This may for instance be a File or an EFile. setSource(zf). // The target directory. This may for instance be a File directory or a // Directory. setTarget(target). setFilter( // Use an At4J Filter<ArchiveEntry> that only matches // text file entries. FileAEF.FILTER.and( new NameGlobAEF( new Glob("*.txt")))). run();


* An EntityFS-aware task is implemented using EntityFS. This means that it uses the filter settings of DirectoryView:s and also that it often can work with other file system implementations than File-based, such as the RAM file system.