Package org.apache.tools.ant.types.resources

## Class Files

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.selectors.AbstractSelectorContainer
      - - org.apache.tools.ant.types.resources.Files

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

      public class Files
      extends AbstractSelectorContainer
      implements ResourceCollection

  ResourceCollection implementation; like AbstractFileSet with absolute paths.
  Since:
    Ant 1.7

- - ### 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
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `Files()` | Construct a new `Files` collection.
    `protected` | `Files​(Files f)` | Construct a new `Files` collection, shallowly cloned from the specified `Files`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `appendExcludes​(java.lang.String[] excludes)` | Append `excludes` to the current list of include patterns.
    `void` | `appendIncludes​(java.lang.String[] includes)` | Append `includes` to the current list of include patterns.
    `void` | `appendSelector​(FileSelector selector)` | Add a new selector into this container.
    `java.lang.Object` | `clone()` | Create a deep clone of this instance, except for the nested selectors (the list of selectors is a shallow clone of this instance's list).
    `PatternSet.NameEntry` | `createExclude()` | Add a name entry to the exclude list.
    `PatternSet.NameEntry` | `createExcludesFile()` | Add a name entry to the excludes files list.
    `PatternSet.NameEntry` | `createInclude()` | Add a name entry to the include list.
    `PatternSet.NameEntry` | `createIncludesFile()` | Add a name entry to the include files list.
    `PatternSet` | `createPatternSet()` | Create a nested patternset.
    `boolean` | `getDefaultexcludes()` | Get whether default exclusions should be used or not.
    `protected Files` | `getRef()` | Perform the check for circular references and return the referenced Files collection.
    `boolean` | `hasPatterns()` | Find out whether this Files collection has patterns.
    `boolean` | `isCaseSensitive()` | Find out if this Files collection is case-sensitive.
    `boolean` | `isFilesystemOnly()` | Always returns true.
    `boolean` | `isFollowSymlinks()` | Find out whether symbolic links should be followed.
    `java.util.Iterator<Resource>` | `iterator()` | Fulfill the ResourceCollection contract.
    `java.lang.String[]` | `mergeExcludes​(Project p)` | Get the merged exclude patterns for this Files collection.
    `java.lang.String[]` | `mergeIncludes​(Project p)` | Get the merged include patterns for this Files collection.
    `PatternSet` | `mergePatterns​(Project p)` | Get the merged patterns for this Files collection.
    `void` | `setCaseSensitive​(boolean caseSensitive)` | Set case-sensitivity of the Files collection.
    `void` | `setDefaultexcludes​(boolean useDefaultExcludes)` | Set whether default exclusions should be used or not.
    `void` | `setExcludes​(java.lang.String excludes)` | Append `excludes` to the current list of exclude patterns.
    `void` | `setExcludesfile​(java.io.File excl)` | Set the `File` containing the excludes patterns.
    `void` | `setFollowSymlinks​(boolean followSymlinks)` | Set whether or not symbolic links should be followed.
    `void` | `setIncludes​(java.lang.String includes)` | Append `includes` to the current list of include patterns.
    `void` | `setIncludesfile​(java.io.File incl)` | Set the `File` containing the includes patterns.
    `void` | `setRefid​(Reference r)` | Make this instance in effect a reference to another instance.
    `int` | `size()` | Fulfill the ResourceCollection contract.
    `java.lang.String` | `toString()` | Format this Files collection as a String.

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

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addExecutable, addFilename, addMajority, addModified, addNone, addNot, addOr, addOwnedBy, addPosixGroup, addPosixPermissions, addPresent, addReadable, addSelector, addSize, addSymlink, addType, addWritable, dieOnCircularReference, getSelectors, hasSelectors, selectorCount, selectorElements, validate`

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

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, 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`

    - ### Methods inherited from interface org.apache.tools.ant.types.ResourceCollection

      `isEmpty, stream`

- - ### Constructor Detail

    - #### Files

          public Files()

      Construct a new `Files` collection.

    - #### Files

          protected Files​(Files f)

      Construct a new `Files` collection, shallowly cloned from the specified `Files`.
      Parameters:
        `f` - the `Files` to use as a template.

  - ### Method Detail

    - #### setRefid

          public void setRefid​(Reference r)
                        throws BuildException

      Make this instance in effect a reference to another instance.

      You must not set another attribute or nest elements inside this element if you make it a reference.

      Overrides:
        `setRefid` in class `DataType`
      Parameters:
        `r` - the `Reference` to use.
      Throws:
        `BuildException` - if there is a problem.

    - #### createPatternSet

          public PatternSet createPatternSet()

      Create a nested patternset.
      Returns:
        `PatternSet`.

    - #### createInclude

          public PatternSet.NameEntry createInclude()

      Add a name entry to the include list.
      Returns:
        `PatternSet.NameEntry`.

    - #### createIncludesFile

          public PatternSet.NameEntry createIncludesFile()

      Add a name entry to the include files list.
      Returns:
        `PatternSet.PatternFileNameEntry`.

    - #### createExclude

          public PatternSet.NameEntry createExclude()

      Add a name entry to the exclude list.
      Returns:
        `PatternSet.NameEntry`.

    - #### createExcludesFile

          public PatternSet.NameEntry createExcludesFile()

      Add a name entry to the excludes files list.
      Returns:
        `PatternSet.PatternFileNameEntry`.

    - #### setIncludes

          public void setIncludes​(java.lang.String includes)

      Append `includes` to the current list of include patterns.

      Patterns may be separated by a comma or a space.

      Parameters:
        `includes` - the `String` containing the include patterns.

    - #### appendIncludes

          public void appendIncludes​(java.lang.String[] includes)

      Append `includes` to the current list of include patterns.
      Parameters:
        `includes` - array containing the include patterns.

    - #### setExcludes

          public void setExcludes​(java.lang.String excludes)

      Append `excludes` to the current list of exclude patterns.

      Patterns may be separated by a comma or a space.

      Parameters:
        `excludes` - the `String` containing the exclude patterns.

    - #### appendExcludes

          public void appendExcludes​(java.lang.String[] excludes)

      Append `excludes` to the current list of include patterns.
      Parameters:
        `excludes` - array containing the exclude patterns.

    - #### setIncludesfile

          public void setIncludesfile​(java.io.File incl)
                               throws BuildException

      Set the `File` containing the includes patterns.
      Parameters:
        `incl` - `File` instance.
      Throws:
        `BuildException` - if there is a problem.

    - #### setExcludesfile

          public void setExcludesfile​(java.io.File excl)
                               throws BuildException

      Set the `File` containing the excludes patterns.
      Parameters:
        `excl` - `File` instance.
      Throws:
        `BuildException` - if there is a problem.

    - #### setDefaultexcludes

          public void setDefaultexcludes​(boolean useDefaultExcludes)

      Set whether default exclusions should be used or not.
      Parameters:
        `useDefaultExcludes` - `boolean`.

    - #### getDefaultexcludes

          public boolean getDefaultexcludes()

      Get whether default exclusions should be used or not.
      Returns:
        the defaultexclusions value.

    - #### setCaseSensitive

          public void setCaseSensitive​(boolean caseSensitive)

      Set case-sensitivity of the Files collection.
      Parameters:
        `caseSensitive` - `boolean`.

    - #### isCaseSensitive

          public boolean isCaseSensitive()

      Find out if this Files collection is case-sensitive.
      Returns:
        `boolean` indicating whether the Files collection is case-sensitive.

    - #### setFollowSymlinks

          public void setFollowSymlinks​(boolean followSymlinks)

      Set whether or not symbolic links should be followed.
      Parameters:
        `followSymlinks` - whether or not symbolic links should be followed.

    - #### isFollowSymlinks

          public boolean isFollowSymlinks()

      Find out whether symbolic links should be followed.
      Returns:
        `boolean` indicating whether symbolic links should be followed.

    - #### iterator

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

      Fulfill the ResourceCollection contract.
      Specified by:
        `iterator` in interface `java.lang.Iterable<Resource>`
      Returns:
        an Iterator of Resources.

    - #### size

          public int size()

      Fulfill the ResourceCollection contract.
      Specified by:
        `size` in interface `ResourceCollection`
      Returns:
        number of elements as int.

    - #### hasPatterns

          public boolean hasPatterns()

      Find out whether this Files collection has patterns.
      Returns:
        whether any patterns are in this container.

    - #### appendSelector

          public void appendSelector​(FileSelector selector)

      Add a new selector into this container.
      Specified by:
        `appendSelector` in interface `SelectorContainer`
      Overrides:
        `appendSelector` in class `AbstractSelectorContainer`
      Parameters:
        `selector` - the new `FileSelector` to add.

    - #### toString

          public java.lang.String toString()

      Format this Files collection as a String.
      Overrides:
        `toString` in class `AbstractSelectorContainer`
      Returns:
        a descriptive `String`.

    - #### clone

          public java.lang.Object clone()

      Create a deep clone of this instance, except for the nested selectors (the list of selectors is a shallow clone of this instance's list).
      Overrides:
        `clone` in class `AbstractSelectorContainer`
      Returns:
        a cloned Object.

    - #### mergeIncludes

          public java.lang.String[] mergeIncludes​(Project p)

      Get the merged include patterns for this Files collection.
      Parameters:
        `p` - Project instance.
      Returns:
        the include patterns of the default pattern set and all nested patternsets.

    - #### mergeExcludes

          public java.lang.String[] mergeExcludes​(Project p)

      Get the merged exclude patterns for this Files collection.
      Parameters:
        `p` - Project instance.
      Returns:
        the exclude patterns of the default pattern set and all nested patternsets.

    - #### mergePatterns

          public PatternSet mergePatterns​(Project p)

      Get the merged patterns for this Files collection.
      Parameters:
        `p` - Project instance.
      Returns:
        the default patternset merged with the additional sets in a new PatternSet instance.

    - #### isFilesystemOnly

          public boolean isFilesystemOnly()

      Always returns true.
      Specified by:
        `isFilesystemOnly` in interface `ResourceCollection`
      Returns:
        true indicating that all elements of a Files collection will be FileResources.

    - #### getRef

          protected Files getRef()

      Perform the check for circular references and return the referenced Files collection.
      Returns:
        `FileCollection`.