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:
  `java.lang.Cloneable`

Direct Known Subclasses:
  `Untar`

    public class Expand
    extends Task

Unzip a file.

Since:
  Ant 1.1

### Field Summary

Fields
`static java.lang.String` `ERROR_MULTIPLE_MAPPERS` Error message when more that one mapper is defined
`static java.lang.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
`` `Expand()` Creates an Expand instance and sets encoding to UTF-8.
`protected` `Expand​(java.lang.String encoding)` Creates an Expand instance and sets the given encoding.

### Method Summary

All Methods Instance Methods Concrete Methods
`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, java.io.File srcF, java.io.File dir)` This method is to be overridden by extending unarchival tasks.
`protected void` `expandResource​(Resource srcR, java.io.File dir)` This method is to be overridden by extending unarchival tasks.
`protected void` `extractFile​(FileUtils fileUtils, java.io.File srcF, java.io.File dir, java.io.InputStream compressedInputStream, java.lang.String entryName, java.util.Date entryDate, boolean isDirectory, FileNameMapper mapper)` extract a file to a directory
`java.lang.Boolean` `getAllowFilesToEscapeDest()` Whether to allow the extracted file or directory to be outside of the dest directory.
`java.lang.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​(java.lang.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​(java.io.File d)` Set the destination directory.
`void` `setEncoding​(java.lang.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​(java.io.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 Detail

#### NATIVE_ENCODING

    public static final java.lang.String NATIVE_ENCODING

See Also:
  Constant Field Values

#### ERROR_MULTIPLE_MAPPERS

    public static final java.lang.String ERROR_MULTIPLE_MAPPERS

Error message when more that one mapper is defined

See Also:
  Constant Field Values

### Constructor Detail

#### Expand

    public Expand()

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

#### Expand

    protected Expand​(java.lang.String encoding)

Creates an Expand instance and sets the given encoding.

Parameters:
  `encoding` - String
Since:
  Ant 1.9.5

### Method Detail

#### 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,
                              java.io.File srcF,
                              java.io.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,
                                  java.io.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,
                               java.io.File srcF,
                               java.io.File dir,
                               java.io.InputStream compressedInputStream,
                               java.lang.String entryName,
                               java.util.Date entryDate,
                               boolean isDirectory,
                               FileNameMapper mapper)
                        throws java.io.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:
  `java.io.IOException` - on error

#### setDest

    public void setDest​(java.io.File d)

Set the destination directory. File will be unzipped into the destination directory.

Parameters:
  `d` - Path to the directory.

#### setSrc

    public void setSrc​(java.io.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​(java.lang.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​(java.lang.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 java.lang.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 java.lang.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