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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier | Constructor and Description
    --- | ---
    `` | `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
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(FileNameMapper fileNameMapper)` A nested filenamemapper
    `void` | `add(ResourceCollection rc)` Add a resource collection.
    `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