Archives (Apache Ant API)
Date: 2021-07-10

org.apache.tools.ant.types.resources

## Class Archives

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.resources.Archives

- All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<Resource>, ResourceCollection

      public class Archives
      extends DataType
      implements ResourceCollection, java.lang.Cloneable

  A resource collection that treats all nested resources as archives and returns the contents of the archives as its content.
  Since:
    Ant 1.8.0

- - ### Field Summary

    - ### 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
    Constructor and Description
    `Archives()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Implement clone.
    `protected ArchiveFileSet` | `configureArchive(ArchiveFileSet afs, Resource src)` Configures the archivefileset based on this type's settings, set the source.
    `Union` | `createTars()` Wrapper to identify nested resource collections as ZIP archives.
    `Union` | `createZips()` Wrapper to identify nested resource collections as ZIP archives.
    `protected void` | `dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)` Overrides the version of DataType to recurse on all DataType child elements that may have been added.
    `protected java.util.Iterator<ArchiveFileSet>` | `grabArchives()` Turns all nested resources into corresponding ArchiveFileSets and returns an iterator over the collected archives.
    `boolean` | `isFilesystemOnly()` Indicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions.
    `java.util.Iterator<Resource>` | `iterator()` Merges the nested collections.
    `void` | `setRefid(Reference r)` Overrides the base version.
    `int` | `size()` Sums the sizes of nested archives.

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

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

    - ### 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`

- - ### Constructor Detail

    - #### Archives

          public Archives()

  - ### Method Detail

    - #### createZips

          public Union createZips()

      Wrapper to identify nested resource collections as ZIP archives.
      Returns:
        Union

    - #### createTars

          public Union createTars()

      Wrapper to identify nested resource collections as ZIP archives.
      Returns:
        Union

    - #### size

          public int size()

      Sums the sizes of nested archives.
      Specified by:
        `size` in interface `ResourceCollection`
      Returns:
        int

    - #### iterator

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

      Merges the nested collections.
      Specified by:
        `iterator` in interface `java.lang.Iterable<Resource>`
      Specified by:
        `iterator` in interface `ResourceCollection`
      Returns:
        Iterator<Resource>

    - #### isFilesystemOnly

          public boolean isFilesystemOnly()

      Description copied from interface: `ResourceCollection`
      Indicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions. If true, all resources returned from this collection should respond with a `FileProvider` when asked via `Resource.as(java.lang.Class<T>)`.
      Specified by:
        `isFilesystemOnly` in interface `ResourceCollection`
      Returns:
        false

    - #### setRefid

          public void setRefid(Reference r)

      Overrides the base version.
      Overrides:
        `setRefid` in class `DataType`
      Parameters:
        `r` - the Reference to set.

    - #### clone

          public java.lang.Object clone()

      Implement clone. The nested resource collections are cloned as well.
      Overrides:
        `clone` in class `DataType`
      Returns:
        a cloned instance.

    - #### grabArchives

          protected java.util.Iterator<ArchiveFileSet> grabArchives()

      Turns all nested resources into corresponding ArchiveFileSets and returns an iterator over the collected archives.
      Returns:
        Iterator<ArchiveFileSet>

    - #### configureArchive

          protected ArchiveFileSet configureArchive(ArchiveFileSet afs,
                                                    Resource src)

      Configures the archivefileset based on this type's settings, set the source.
      Parameters:
        `afs` - ArchiveFileSet
        `src` - Resource
      Returns:
        ArchiveFileSet

    - #### dieOnCircularReference

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

      Overrides the version of DataType to recurse on all DataType child elements that may have been added.
      Overrides:
        `dieOnCircularReference` in class `DataType`
      Parameters:
        `stk` - the stack of data types to use (recursively).
        `p` - the project to use to dereference the references.
      Throws:
        `BuildException` - on error.