Package org.apache.tools.ant.taskdefs

# Class Expand

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.Expand

All Implemented Interfaces:
  `Cloneable`

Direct Known Subclasses:
  `Untar`

public class Expand extends Task
Unzip a file.

Since:
  Ant 1.1

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ERROR_MULTIPLE_MAPPERS`
Error message when more that one mapper is defined
`static final String`
`NATIVE_ENCODING`

### Fields inherited from class org.apache.tools.ant.Task

`target, taskName, taskType, wrapper`

### Fields inherited from class org.apache.tools.ant.ProjectComponent

`description, location, project`

## Constructor Summary

Constructors
Modifier
Constructor
Description
``
`Expand()`
Creates an Expand instance and sets encoding to UTF-8.
`protected`
`Expand(String encoding)`
Creates an Expand instance and sets the given encoding.

## Method Summary

Modifier and Type
Method
Description
`void`
`add(ResourceCollection rc)`
Add a resource collection.
`void`
`add(FileNameMapper fileNameMapper)`
A nested filenamemapper
`void`
`addFileset(FileSet set)`
Add a fileset
`void`
`addPatternset(PatternSet set)`
Add a patternset.
`Mapper`
`createMapper()`
Defines the mapper to map source entries to destination files.
`void`
`execute()`
Do the work.
`protected void`
`expandFile(FileUtils fileUtils, File srcF, File dir)`
This method is to be overridden by extending unarchival tasks.
`protected void`
`expandResource(Resource srcR, File dir)`
This method is to be overridden by extending unarchival tasks.
`protected void`
`extractFile(FileUtils fileUtils, File srcF, File dir, InputStream compressedInputStream, String entryName, Date entryDate, boolean isDirectory, FileNameMapper mapper)`
extract a file to a directory
`Boolean`
`getAllowFilesToEscapeDest()`
Whether to allow the extracted file or directory to be outside of the dest directory.
`String`
`getEncoding()`
`boolean`
`getFailOnEmptyArchive()`
Whether try ing to expand an empty archive would be an error.
`protected FileNameMapper`
`getMapper()`
get a mapper for a file
`boolean`
`getScanForUnicodeExtraFields()`
`protected void`
`internalSetEncoding(String encoding)`
Supports grand-children that want to support the attribute where the child-class doesn't (i.e.
`protected void`
`internalSetScanForUnicodeExtraFields(boolean b)`
Supports grand-children that want to support the attribute where the child-class doesn't (i.e.
`void`
`setAllowFilesToEscapeDest(boolean b)`
Whether to allow the extracted file or directory to be outside of the dest directory.
`void`
`setDest(File d)`
Set the destination directory.
`void`
`setEncoding(String encoding)`
Sets the encoding to assume for file names and comments.
`void`
`setFailOnEmptyArchive(boolean b)`
Whether try ing to expand an empty archive would be an error.
`void`
`setOverwrite(boolean b)`
Should we overwrite files in dest, even if they are newer than the corresponding entries in the archive?
`void`
`setScanForUnicodeExtraFields(boolean b)`
Whether unicode extra fields will be used if present.
`void`
`setSrc(File s)`
Set the path to zip-file.
`void`
`setStripAbsolutePathSpec(boolean b)`
Whether leading path separators should be stripped.

### Methods inherited from class org.apache.tools.ant.Task

`bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

### Methods inherited from class org.apache.tools.ant.ProjectComponent

`clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### NATIVE_ENCODING

public static final String NATIVE_ENCODING

See Also:
  - Constant Field Values

### ERROR_MULTIPLE_MAPPERS

public static final String ERROR_MULTIPLE_MAPPERS
Error message when more that one mapper is defined

See Also:
  - Constant Field Values

## Constructor Details

### Expand

public Expand()
Creates an Expand instance and sets encoding to UTF-8.

### Expand

protected Expand(String encoding)
Creates an Expand instance and sets the given encoding.

Parameters:
  `encoding` - String
Since:
  Ant 1.9.5

## Method Details

### setFailOnEmptyArchive

public void setFailOnEmptyArchive(boolean b)
Whether try ing to expand an empty archive would be an error.

Parameters:
  `b` - boolean
Since:
  Ant 1.8.0

### getFailOnEmptyArchive

public boolean getFailOnEmptyArchive()
Whether try ing to expand an empty archive would be an error.

Returns:
  boolean
Since:
  Ant 1.8.0

### execute

public void execute() throws BuildException
Do the work.

Overrides:
  `execute` in class `Task`
Throws:
  `BuildException` - Thrown in unrecoverable error.

### expandFile

protected void expandFile(FileUtils fileUtils, File srcF, File dir)
This method is to be overridden by extending unarchival tasks.

Parameters:
  `fileUtils` - the fileUtils
  `srcF` - the source file
  `dir` - the destination directory

### expandResource

protected void expandResource(Resource srcR, File dir)
This method is to be overridden by extending unarchival tasks.

Parameters:
  `srcR` - the source resource
  `dir` - the destination directory

### getMapper

protected FileNameMapper getMapper()
get a mapper for a file

Returns:
  a filenamemapper for a file

### extractFile

protected void extractFile(FileUtils fileUtils, File srcF, File dir, InputStream compressedInputStream, String entryName, Date entryDate, boolean isDirectory, FileNameMapper mapper) throws IOException
extract a file to a directory

Parameters:
  `fileUtils` - a fileUtils object
  `srcF` - the source file
  `dir` - the destination directory
  `compressedInputStream` - the input stream
  `entryName` - the name of the entry
  `entryDate` - the date of the entry
  `isDirectory` - if this is true the entry is a directory
  `mapper` - the filename mapper to use
Throws:
  `IOException` - on error

### setDest

public void setDest(File d)
Set the destination directory. File will be unzipped into the destination directory.

Parameters:
  `d` - Path to the directory.

### setSrc

public void setSrc(File s)
Set the path to zip-file.

Parameters:
  `s` - Path to zip-file.

### setOverwrite

public void setOverwrite(boolean b)
Should we overwrite files in dest, even if they are newer than the corresponding entries in the archive?

Parameters:
  `b` - a `boolean` value

### addPatternset

public void addPatternset(PatternSet set)
Add a patternset.

Parameters:
  `set` - a pattern set

### addFileset

public void addFileset(FileSet set)
Add a fileset

Parameters:
  `set` - a file set

### add

public void add(ResourceCollection rc)
Add a resource collection.

Parameters:
  `rc` - a resource collection.
Since:
  Ant 1.7

### createMapper

public Mapper createMapper() throws BuildException
Defines the mapper to map source entries to destination files.

Returns:
  a mapper to be configured
Throws:
  `BuildException` - if more than one mapper is defined
Since:
  Ant1.7

### add

public void add(FileNameMapper fileNameMapper)
A nested filenamemapper

Parameters:
  `fileNameMapper` - the mapper to add
Since:
  Ant 1.6.3

### setEncoding

public void setEncoding(String encoding)
Sets the encoding to assume for file names and comments.

Set to `native-encoding` if you want your platform's native encoding, defaults to UTF8.

Parameters:
  `encoding` - the name of the character encoding
Since:
  Ant 1.6

### internalSetEncoding

protected void internalSetEncoding(String encoding)
Supports grand-children that want to support the attribute where the child-class doesn't (i.e. Unzip in the compress Antlib).

Parameters:
  `encoding` - String
Since:
  Ant 1.8.0

### getEncoding

public String getEncoding()

Returns:
  String
Since:
  Ant 1.8.0

### setStripAbsolutePathSpec

public void setStripAbsolutePathSpec(boolean b)
Whether leading path separators should be stripped.

Parameters:
  `b` - boolean
Since:
  Ant 1.8.0

### setScanForUnicodeExtraFields

public void setScanForUnicodeExtraFields(boolean b)
Whether unicode extra fields will be used if present.

Parameters:
  `b` - boolean
Since:
  Ant 1.8.0

### internalSetScanForUnicodeExtraFields

protected void internalSetScanForUnicodeExtraFields(boolean b)
Supports grand-children that want to support the attribute where the child-class doesn't (i.e. Unzip in the compress Antlib).

Parameters:
  `b` - boolean
Since:
  Ant 1.8.0

### getScanForUnicodeExtraFields

public boolean getScanForUnicodeExtraFields()

Returns:
  boolean
Since:
  Ant 1.8.0

### setAllowFilesToEscapeDest

public void setAllowFilesToEscapeDest(boolean b)
Whether to allow the extracted file or directory to be outside of the dest directory.

Parameters:
  `b` - the flag
Since:
  Ant 1.10.4

### getAllowFilesToEscapeDest

public Boolean getAllowFilesToEscapeDest()
Whether to allow the extracted file or directory to be outside of the dest directory.

Returns:
  `null` if the flag hasn't been set explicitly, otherwise the value set by the user.
Since:
  Ant 1.10.4