Files (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.types.resources, class: Files

# 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:
  `Cloneable, 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 DataType

  `checked, ref`
  Modifier and Type
  Field
  Description
  `protected boolean`
  `checked`
  Deprecated.
  since 1.7.
  `protected Reference`
  `ref`
  Deprecated.
  since 1.7.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

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

  Modifier and Type
  Method
  Description
  `void`
  `appendExcludes(String[] excludes)`
  Append `excludes` to the current list of include patterns.
  `void`
  `appendIncludes(String[] includes)`
  Append `includes` to the current list of include patterns.
  `void`
  `appendSelector(FileSelector selector)`
  Add a new selector into this container.
  `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.
  `Iterator<Resource>`
  `iterator()`
  Fulfill the ResourceCollection contract.
  `String[]`
  `mergeExcludes(Project p)`
  Get the merged exclude patterns for this Files collection.
  `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(String excludes)`
  Append `excludes` to the current list of exclude patterns.
  `void`
  `setExcludesfile(File excl)`
  Set the `File` containing the excludes patterns.
  `void`
  `setFollowSymlinks(boolean followSymlinks)`
  Set whether or not symbolic links or Windows junctions should be followed.
  `void`
  `setIncludes(String includes)`
  Append `includes` to the current list of include patterns.
  `void`
  `setIncludesfile(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.
  `String`
  `toString()`
  Format this Files collection as a String.

  ### Methods inherited from class 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, addWindowsJunction, addWritable, dieOnCircularReference, getSelectors, hasSelectors, selectorCount, selectorElements, validate`
  Modifier and Type
  Method
  Description
  `void`
  `add(FileSelector selector)`
  add an arbitrary selector
  `void`
  `addAnd(AndSelector selector)`
  add an "And" selector entry on the selector list
  `void`
  `addContains(ContainsSelector selector)`
  add a contains selector entry on the selector list
  `void`
  `addContainsRegexp(ContainsRegexpSelector selector)`
  add a regular expression selector entry on the selector list
  `void`
  `addCustom(ExtendSelector selector)`
  add an extended selector entry on the selector list
  `void`
  `addDate(DateSelector selector)`
  add a selector date entry on the selector list
  `void`
  `addDepend(DependSelector selector)`
  add a depends selector entry on the selector list
  `void`
  `addDepth(DepthSelector selector)`
  add a depth selector entry on the selector list
  `void`
  `addDifferent(DifferentSelector selector)`
  adds a different selector to the selector list
  `void`
  `addExecutable(ExecutableSelector e)`
  `void`
  `addFilename(FilenameSelector selector)`
  add a selector filename entry on the selector list
  `void`
  `addMajority(MajoritySelector selector)`
  add a majority selector entry on the selector list
  `void`
  `addModified(ModifiedSelector selector)`
  add the modified selector
  `void`
  `addNone(NoneSelector selector)`
  add a "None" selector entry on the selector list
  `void`
  `addNot(NotSelector selector)`
  add a "Not" selector entry on the selector list
  `void`
  `addOr(OrSelector selector)`
  add an "Or" selector entry on the selector list
  `void`
  `addOwnedBy(OwnedBySelector o)`
  `void`
  `addPosixGroup(PosixGroupSelector o)`
  `void`
  `addPosixPermissions(PosixPermissionsSelector o)`
  `void`
  `addPresent(PresentSelector selector)`
  add a present selector entry on the selector list
  `void`
  `addReadable(ReadableSelector r)`
  `void`
  `addSelector(SelectSelector selector)`
  add a "Select" selector entry on the selector list
  `void`
  `addSize(SizeSelector selector)`
  add a selector size entry on the selector list
  `void`
  `addSymlink(SymlinkSelector e)`
  `void`
  `addType(TypeSelector selector)`
  adds a type selector to the selector list
  `void`
  `addWindowsJunction(WindowsJunctionSelector e)`
  `void`
  `addWritable(WritableSelector w)`
  `protected void`
  `dieOnCircularReference(Stack<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).
  `FileSelector[]`
  `getSelectors(Project p)`
  Returns the set of selectors as an array.
  `boolean`
  `hasSelectors()`
  Indicates whether there are any selectors here.
  `int`
  `selectorCount()`
  Gives the count of the number of selectors in this container
  `Enumeration<FileSelector>`
  `selectorElements()`
  Returns an enumerator for accessing the set of selectors.
  `void`
  `validate()`
  This validates each contained selector provided that the selector implements the validate interface.

  ### Methods inherited from class DataType

  `checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes`
  Modifier and Type
  Method
  Description
  `protected void`
  `checkAttributesAllowed()`
  check that it is ok to set attributes, i.e that no reference is defined
  `protected void`
  `checkChildrenAllowed()`
  check that it is ok to add children, i.e that no reference is defined
  `protected BuildException`
  `circularReference()`
  Creates an exception that indicates the user has generated a loop of data types referencing each other.
  `protected void`
  `dieOnCircularReference()`
  Convenience method.
  `protected void`
  `dieOnCircularReference(Project p)`
  Convenience method.
  `protected <T> T`
  `getCheckedRef()`
  Deprecated.
  use getCheckedRef(Class)
  `protected <T> T`
  `getCheckedRef(Class<T> requiredClass)`
  Performs the check for circular references and returns the referenced object.
  `protected <T> T`
  `getCheckedRef(Class<T> requiredClass, String dataTypeName)`
  Performs the check for circular references and returns the referenced object.
  `protected <T> T`
  `getCheckedRef(Class<T> requiredClass, String dataTypeName, Project project)`
  Performs the check for circular references and returns the referenced object.
  `protected <T> T`
  `getCheckedRef(Project p)`
  Deprecated.
  use getCheckedRef(Class)
  `protected String`
  `getDataTypeName()`
  Gets as descriptive as possible a name used for this datatype instance.
  `Reference`
  `getRefid()`
  get the reference set on this object
  `static void`
  `invokeCircularReferenceCheck(DataType dt, Stack<Object> stk, Project p)`
  Allow DataTypes outside org.apache.tools.ant.types to indirectly call dieOnCircularReference on nested DataTypes.
  `protected boolean`
  `isChecked()`
  The flag that is used to indicate that circular references have been checked.
  `boolean`
  `isReference()`
  Has the refid attribute of this element been set?
  `protected BuildException`
  `noChildrenAllowed()`
  Creates an exception that indicates that this XML element must not have child elements if the refid attribute is set.
  `static void`
  `pushAndInvokeCircularReferenceCheck(DataType dt, Stack<Object> stk, Project p)`
  Allow DataTypes outside org.apache.tools.ant.types to indirectly call dieOnCircularReference on nested DataTypes.
  `protected void`
  `setChecked(boolean checked)`
  Set the flag that is used to indicate that circular references have been checked.
  `protected BuildException`
  `tooManyAttributes()`
  Creates an exception that indicates that refid has to be the only attribute if it is set.

  ### Methods inherited from class ProjectComponent

  `getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Iterable

  `forEach, spliterator`

  ### Methods inherited from interface ResourceCollection

  `isEmpty, stream`
  Modifier and Type
  Method
  Description
  `default boolean`
  `isEmpty()`
  Learn whether this `ResourceCollection` is empty.
  `default Stream<? extends Resource>`
  `stream()`
  Return a `Stream` over this `ResourceCollection`.

- ## Constructor Details

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

  - ### 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(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(String[] includes)
    Append `includes` to the current list of include patterns.
    Parameters:
      `includes` - array containing the include patterns.

  - ### setExcludes

    public void setExcludes(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(String[] excludes)
    Append `excludes` to the current list of include patterns.
    Parameters:
      `excludes` - array containing the exclude patterns.

  - ### setIncludesfile

    public void setIncludesfile(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(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 or Windows junctions 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 Iterator<Resource> iterator()
    Fulfill the ResourceCollection contract.
    Specified by:
      `iterator` in interface `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 String toString()
    Format this Files collection as a String.
    Overrides:
      `toString` in class `AbstractSelectorContainer`
    Returns:
      a descriptive `String`.

  - ### clone

    public 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 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 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`.