ArchiveFileSet (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.types

## Class ArchiveFileSet

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.AbstractFileSet
      - - org.apache.tools.ant.types.FileSet
        - - org.apache.tools.ant.types.ArchiveFileSet

- All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<Resource>, ResourceCollection, SelectorContainer
  Direct Known Subclasses:
    TarFileSet, ZipFileSet

      public abstract class ArchiveFileSet
      extends FileSet

  A ArchiveFileSet is a FileSet with extra attributes useful in the context of archiving tasks. It includes a prefix attribute which is prepended to each entry in the output archive file as well as a fullpath attribute. It also supports Unix file permissions for files and directories.
  Since:
    Ant 1.7

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_DIR_MODE` Default value for the dirmode attribute.
    `static int` | `DEFAULT_FILE_MODE` Default value for the filemode attribute.

    - ### Fields inherited from class org.apache.tools.ant.types.DataType

      `checked, ref`

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

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `ArchiveFileSet()` Constructor for ArchiveFileSet
    `protected` | `ArchiveFileSet(ArchiveFileSet fileset)` Constructor using a archive fileset argument.
    `protected` | `ArchiveFileSet(FileSet fileset)` Constructor using a fileset argument.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfigured(ResourceCollection a)` Set the source Archive file for the archivefileset.
    `java.lang.Object` | `clone()` Return a ArchiveFileSet that has the same properties as this one.
    `protected void` | `configureFileSet(ArchiveFileSet zfs)` A ArchiveFileset accepts another ArchiveFileSet or a FileSet as reference FileSets are often used by the war task for the lib attribute
    `protected void` | `dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)` Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).
    `protected java.lang.Object` | `getCheckedRef(Project p)` Performs the check for circular references and returns the referenced object.
    `DirectoryScanner` | `getDirectoryScanner(Project p)` Return the DirectoryScanner associated with this FileSet.
    `int` | `getDirMode()` Deprecated. since 1.7.
    `int` | `getDirMode(Project p)` Get the dir mode of the archive fileset
    `java.lang.String` | `getEncoding()` Get the encoding used for this ZipFileSet.
    `int` | `getFileMode()` Deprecated. since 1.7.
    `int` | `getFileMode(Project p)` Get the mode of the archive fileset
    `java.lang.String` | `getFullpath()` Deprecated. since 1.7.
    `java.lang.String` | `getFullpath(Project p)` Return the full pathname of the single entry in this fileset.
    `java.lang.String` | `getPrefix()` Deprecated. since 1.7.
    `java.lang.String` | `getPrefix(Project p)` Return the prefix prepended to entries in the archive file.
    `java.io.File` | `getSrc()` Get the archive file from which entries will be extracted.
    `java.io.File` | `getSrc(Project p)` Get the archive from which entries will be extracted.
    `boolean` | `hasDirModeBeenSet()` Whether the user has specified the mode explicitly.
    `boolean` | `hasFileModeBeenSet()` Whether the user has specified the mode explicitly.
    `void` | `integerSetDirMode(int mode)` specify the user, group and other modes in the standard Unix fashion; optional, default=0755
    `void` | `integerSetFileMode(int mode)` specify the user, group and other modes in the standard Unix fashion; optional, default=0644
    `boolean` | `isFilesystemOnly()` Indicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions.
    `java.util.Iterator<Resource>` | `iterator()` Fulfill the ResourceCollection contract.
    `protected abstract ArchiveScanner` | `newArchiveScanner()` Creates a scanner for this type of archive.
    `void` | `setDir(java.io.File dir)` Set the directory for the fileset.
    `void` | `setDirMode(java.lang.String octalString)` A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0755
    `void` | `setEncoding(java.lang.String enc)` Set the encoding used for this ZipFileSet.
    `void` | `setErrorOnMissingArchive(boolean errorOnMissingArchive)` Sets whether an error is thrown if an archive does not exist.
    `void` | `setFileMode(java.lang.String octalString)` A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0644
    `void` | `setFullpath(java.lang.String fullpath)` Set the full pathname of the single entry in this fileset.
    `void` | `setPrefix(java.lang.String prefix)` Prepend this prefix to the path for each archive entry.
    `void` | `setSrc(java.io.File srcFile)` Set the source Archive file for the archivefileset.
    `void` | `setSrcResource(Resource src)` Set the source Archive file for the archivefileset.
    `int` | `size()` Fulfill the ResourceCollection contract.
    `java.lang.String` | `toString()` For file-based archivefilesets, return the same as for normal filesets; else just return the path of the zip.

    - ### Methods inherited from class org.apache.tools.ant.types.AbstractFileSet

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addReadable, addSelector, addSize, addType, addWritable, appendExcludes, appendIncludes, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDefaultexcludes, getDir, getDir, getDirectoryScanner, getErrorOnMissingDir, getMaxLevelsOfSymlinks, getRef, getSelectors, hasPatterns, hasSelectors, isCaseSensitive, isFollowSymlinks, mergeExcludes, mergeIncludes, mergePatterns, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setErrorOnMissingDir, setExcludes, setExcludesfile, setFile, setFollowSymlinks, setIncludes, setIncludesfile, setMaxLevelsOfSymlinks, setRefid, setupDirectoryScanner, setupDirectoryScanner`

    - ### Methods inherited from class org.apache.tools.ant.types.DataType

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes`

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

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

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### DEFAULT_DIR_MODE

          public static final int DEFAULT_DIR_MODE

      Default value for the dirmode attribute.
      Since:
        Ant 1.5.2
      See Also:
        Constant Field Values

    - #### DEFAULT_FILE_MODE

          public static final int DEFAULT_FILE_MODE

      Default value for the filemode attribute.
      Since:
        Ant 1.5.2
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ArchiveFileSet

          public ArchiveFileSet()

      Constructor for ArchiveFileSet

    - #### ArchiveFileSet

          protected ArchiveFileSet(FileSet fileset)

      Constructor using a fileset argument.
      Parameters:
        `fileset` - the fileset to use

    - #### ArchiveFileSet

          protected ArchiveFileSet(ArchiveFileSet fileset)

      Constructor using a archive fileset argument.
      Parameters:
        `fileset` - the archivefileset to use

  - ### Method Detail

    - #### setDir

          public void setDir(java.io.File dir)
                      throws BuildException

      Set the directory for the fileset.
      Overrides:
        `setDir` in class `AbstractFileSet`
      Parameters:
        `dir` - the directory for the fileset
      Throws:
        `BuildException` - on error

    - #### addConfigured

          public void addConfigured(ResourceCollection a)

      Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.
      Parameters:
        `a` - the archive as a single element Resource collection.

    - #### setSrc

          public void setSrc(java.io.File srcFile)

      Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.
      Parameters:
        `srcFile` - The archive from which to extract entries.

    - #### setSrcResource

          public void setSrcResource(Resource src)

      Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.
      Parameters:
        `src` - The archive from which to extract entries.

    - #### getSrc

          public java.io.File getSrc(Project p)

      Get the archive from which entries will be extracted.
      Parameters:
        `p` - the project to use
      Returns:
        the source file

    - #### setErrorOnMissingArchive

          public void setErrorOnMissingArchive(boolean errorOnMissingArchive)

      Sets whether an error is thrown if an archive does not exist.
      Parameters:
        `errorOnMissingArchive` - true if missing archives cause errors, false if not.
      Since:
        Ant 1.8.0

    - #### getSrc

          public java.io.File getSrc()

      Get the archive file from which entries will be extracted.
      Returns:
        the archive in case the archive is a file, null otherwise.

    - #### getCheckedRef

          protected java.lang.Object getCheckedRef(Project p)

      Performs the check for circular references and returns the referenced object. This is an override which does not delegate to the superclass; instead it invokes `AbstractFileSet.getRef(Project)`, because that contains the special support for fileset references, which can be handled by all ArchiveFileSets.
      Overrides:
        `getCheckedRef` in class `DataType`
      Parameters:
        `p` - the Ant Project instance against which to resolve references.
      Returns:
        the dereferenced object.
      Throws:
        `BuildException` - if the reference is invalid (circular ref, wrong class, etc).
      Since:
        Ant 1.8

    - #### setPrefix

          public void setPrefix(java.lang.String prefix)

      Prepend this prefix to the path for each archive entry. Prevents both prefix and fullpath from being specified
      Parameters:
        `prefix` - The prefix to prepend to entries in the archive file.

    - #### getPrefix

          public java.lang.String getPrefix(Project p)

      Return the prefix prepended to entries in the archive file.
      Parameters:
        `p` - the project to use
      Returns:
        the prefix

    - #### setFullpath

          public void setFullpath(java.lang.String fullpath)

      Set the full pathname of the single entry in this fileset. Prevents both prefix and fullpath from being specified
      Parameters:
        `fullpath` - the full pathname of the single entry in this fileset.

    - #### getFullpath

          public java.lang.String getFullpath(Project p)

      Return the full pathname of the single entry in this fileset.
      Parameters:
        `p` - the project to use
      Returns:
        the full path

    - #### setEncoding

          public void setEncoding(java.lang.String enc)

      Set the encoding used for this ZipFileSet.
      Parameters:
        `enc` - encoding as String.
      Since:
        Ant 1.9.5

    - #### getEncoding

          public java.lang.String getEncoding()

      Get the encoding used for this ZipFileSet.
      Returns:
        String encoding.
      Since:
        Ant 1.9.5

    - #### newArchiveScanner

          protected abstract ArchiveScanner newArchiveScanner()

      Creates a scanner for this type of archive.
      Returns:
        the scanner.

    - #### getDirectoryScanner

          public DirectoryScanner getDirectoryScanner(Project p)

      Return the DirectoryScanner associated with this FileSet. If the ArchiveFileSet defines a source Archive file, then an ArchiveScanner is returned instead.
      Overrides:
        `getDirectoryScanner` in class `AbstractFileSet`
      Parameters:
        `p` - the project to use
      Returns:
        a directory scanner

    - #### iterator

          public java.util.Iterator<Resource> iterator()

      Fulfill the ResourceCollection contract.
      Specified by:
        `iterator` in interface `java.lang.Iterable<Resource>`
      Specified by:
        `iterator` in interface `ResourceCollection`
      Overrides:
        `iterator` in class `FileSet`
      Returns:
        Iterator of Resources.
      Since:
        Ant 1.7

    - #### size

          public int size()

      Fulfill the ResourceCollection contract.
      Specified by:
        `size` in interface `ResourceCollection`
      Overrides:
        `size` in class `FileSet`
      Returns:
        size of the collection as int.
      Since:
        Ant 1.7

    - #### isFilesystemOnly

          public boolean isFilesystemOnly()

      Indicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions. If true, all Resources returned from this ResourceCollection should be instances of FileResource.
      Specified by:
        `isFilesystemOnly` in interface `ResourceCollection`
      Overrides:
        `isFilesystemOnly` in class `FileSet`
      Returns:
        whether this is a filesystem-only resource collection.
      Since:
        Ant 1.7

    - #### setFileMode

          public void setFileMode(java.lang.String octalString)

      A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0644
      Parameters:
        `octalString` - a `String` value

    - #### integerSetFileMode

          public void integerSetFileMode(int mode)

      specify the user, group and other modes in the standard Unix fashion; optional, default=0644

      We use the strange name so this method doesn't appear in IntrospectionHelpers list of attribute setters.

      Parameters:
        `mode` - a `int` value
      Since:
        Ant 1.7

    - #### getFileMode

          public int getFileMode(Project p)

      Get the mode of the archive fileset
      Parameters:
        `p` - the project to use
      Returns:
        the mode

    - #### hasFileModeBeenSet

          public boolean hasFileModeBeenSet()

      Whether the user has specified the mode explicitly.
      Returns:
        true if it has been set

    - #### setDirMode

          public void setDirMode(java.lang.String octalString)

      A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0755
      Parameters:
        `octalString` - a `String` value

    - #### integerSetDirMode

          public void integerSetDirMode(int mode)

      specify the user, group and other modes in the standard Unix fashion; optional, default=0755

      We use the strange name so this method doesn't appear in IntrospectionHelpers list of attribute setters.

      Parameters:
        `mode` - a `int` value
      Since:
        Ant 1.7

    - #### getDirMode

          public int getDirMode(Project p)

      Get the dir mode of the archive fileset
      Parameters:
        `p` - the project to use
      Returns:
        the mode

    - #### hasDirModeBeenSet

          public boolean hasDirModeBeenSet()

      Whether the user has specified the mode explicitly.
      Returns:
        true if it has been set

    - #### configureFileSet

          protected void configureFileSet(ArchiveFileSet zfs)

      A ArchiveFileset accepts another ArchiveFileSet or a FileSet as reference FileSets are often used by the war task for the lib attribute
      Parameters:
        `zfs` - the project to use

    - #### clone

          public java.lang.Object clone()

      Return a ArchiveFileSet that has the same properties as this one.
      Overrides:
        `clone` in class `FileSet`
      Returns:
        the cloned archiveFileSet
      Since:
        Ant 1.6

    - #### toString

          public java.lang.String toString()

      For file-based archivefilesets, return the same as for normal filesets; else just return the path of the zip.
      Overrides:
        `toString` in class `AbstractFileSet`
      Returns:
        for file based archivefilesets, included files as a list of semicolon-separated filenames. else just the name of the zip.

    - #### getPrefix

          public java.lang.String getPrefix()

      Deprecated. since 1.7.
      Return the prefix prepended to entries in the archive file.
      Returns:
        the prefix.

    - #### getFullpath

          public java.lang.String getFullpath()

      Deprecated. since 1.7.
      Return the full pathname of the single entryZ in this fileset.
      Returns:
        the full pathname.

    - #### getFileMode

          public int getFileMode()

      Deprecated. since 1.7.
      Returns:
        the file mode.

    - #### getDirMode

          public int getDirMode()

      Deprecated. since 1.7.
      Returns:
        the dir mode.

    - #### dieOnCircularReference

          protected void dieOnCircularReference(java.util.Stack<java.lang.Object> stk,
                                                Project p)
                                         throws BuildException

      Description copied from class: `DataType`
      Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).

      If one is included, throw a BuildException created by `circularReference`.

      This implementation is appropriate only for a DataType that cannot hold other DataTypes as children.

      The general contract of this method is that it shouldn't do anything if `DataType.checked` is true and set it to true on exit.

      Overrides:
        `dieOnCircularReference` in class `AbstractFileSet`
      Parameters:
        `stk` - the stack of references to check.
        `p` - the project to use to dereference the references.
      Throws:
        `BuildException` - on error.