org.gradle.api.file
Interface FileCollection

All Superinterfaces:
org.gradle.api.tasks.AntBuilderAware, Buildable, Iterable<File>
All Known Subinterfaces:
ConfigurableFileCollection, ConfigurableFileTree, Configuration, FileTree, SourceDirectorySet

public interface FileCollection
extends Iterable<File>, org.gradle.api.tasks.AntBuilderAware, Buildable

A FileCollection represents a collection of files which you can query in certain ways. A file collection is often used to define a classpath, or to add files to a container.

You can obtain a FileCollection instance using Project.files(java.lang.Object...).


Nested Class Summary
static class FileCollection.AntType
           
 
Method Summary
 FileCollection add(FileCollection collection)
          Adds another collection to this collection.
 Object addToAntBuilder(Object builder, String nodeName)
          Adds this collection to an Ant task as a nested node.
 void addToAntBuilder(Object builder, String nodeName, FileCollection.AntType type)
          Adds this collection to an Ant task as a nested node.
 Object asType(Class<?> type)
          Converts this collection into an object of the specified type.
 boolean contains(File file)
          Determines whether this collection contains the given file.
 FileCollection filter(Closure filterClosure)
          Restricts the contents of this collection to those files which match the given criteria.
 FileCollection filter(Spec<? super File> filterSpec)
          Restricts the contents of this collection to those files which match the given criteria.
 FileTree getAsFileTree()
          Converts this collection to a FileTree.
 String getAsPath()
          Returns the contents of this collection as a platform-specific path.
 Set<File> getFiles()
          Returns the contents of this collection as a Set.
 File getSingleFile()
          Returns the content of this collection, asserting it contains exactly one file.
 boolean isEmpty()
          Returns true if this collection is empty.
 FileCollection minus(FileCollection collection)
          Returns a FileCollection which contains the intersection of this collection and the given collection.
 FileCollection plus(FileCollection collection)
          Returns a FileCollection which contains the union of this collection and the given collection.
 FileCollection stopExecutionIfEmpty()
          Throws a StopExecutionException if this collection is empty.
 
Methods inherited from interface java.lang.Iterable
iterator
 
Methods inherited from interface org.gradle.api.Buildable
getBuildDependencies
 

Method Detail

getSingleFile

File getSingleFile()
                   throws IllegalStateException
Returns the content of this collection, asserting it contains exactly one file.

Returns:
The file.
Throws:
IllegalStateException - when this collection does not contain exactly one file.

getFiles

Set<File> getFiles()
Returns the contents of this collection as a Set.

Returns:
The files. Returns an empty set if this collection is empty.

contains

boolean contains(File file)
Determines whether this collection contains the given file. Generally, this method is more efficient than calling getFiles().contains(file).

Parameters:
file - The file to check for.
Returns:
true if this collection contains the given file, false otherwise.

getAsPath

String getAsPath()
Returns the contents of this collection as a platform-specific path. This can be used, for example, in an Ant element.

Returns:
The path. Returns an empty string if this collection is empty.

plus

FileCollection plus(FileCollection collection)

Returns a FileCollection which contains the union of this collection and the given collection. The returned collection is live, and tracks changes to both source collections.

You can call this method in your build script using the + operator.

Parameters:
collection - The other collection. Should not be null.
Returns:
A new collection containing the union.

minus

FileCollection minus(FileCollection collection)

Returns a FileCollection which contains the intersection of this collection and the given collection. The returned collection is live, and tracks changes to both source collections.

You can call this method in your build script using the - operator.

Parameters:
collection - The other collection. Should not be null.
Returns:
A new collection containing the intersection.

filter

FileCollection filter(Closure filterClosure)

Restricts the contents of this collection to those files which match the given criteria. The filtered collection is live, so that it reflects any changes to this collection.

The given closure is passed the File as a parameter, and should return a boolean value.

Parameters:
filterClosure - The closure to use to select the contents of the filtered collection.
Returns:
The filtered collection.

filter

FileCollection filter(Spec<? super File> filterSpec)

Restricts the contents of this collection to those files which match the given criteria. The filtered collection is live, so that it reflects any changes to this collection.

Parameters:
filterSpec - The criteria to use to select the contents of the filtered collection.
Returns:
The filtered collection.

asType

Object asType(Class<?> type)
              throws UnsupportedOperationException

Converts this collection into an object of the specified type. Supported types are: Collection, List, Set, Object[], File[], File, and FileTree.

You can call this method in your build script using the as operator.

Parameters:
type - The type to convert to.
Returns:
The converted value.
Throws:
UnsupportedOperationException - When an unsupported type is specified.

add

FileCollection add(FileCollection collection)
                   throws UnsupportedOperationException

Adds another collection to this collection. This is an optional operation.

Parameters:
collection - The collection to add.
Returns:
This
Throws:
UnsupportedOperationException - When this collection does not allow modification.

isEmpty

boolean isEmpty()
Returns true if this collection is empty. Generally, calling this method is more efficient than calling getFiles().isEmpty().

Returns:
true if this collection is empty, false otherwise.

stopExecutionIfEmpty

FileCollection stopExecutionIfEmpty()
                                    throws StopExecutionException
Throws a StopExecutionException if this collection is empty.

Returns:
this
Throws:
StopExecutionException - When this collection is empty.

getAsFileTree

FileTree getAsFileTree()
Converts this collection to a FileTree. Generally, for each file in this collection, the resulting file tree will contain the source file at the root of the tree. For each directory in this collection, the resulting file tree will contain all the files under the source directory.

Returns:
this collection as a FileTree. Never returns null.

addToAntBuilder

void addToAntBuilder(Object builder,
                     String nodeName,
                     FileCollection.AntType type)
Adds this collection to an Ant task as a nested node. The given type determines how this collection is added: You should prefer using FileCollection.AntType.ResourceCollection, if the target Ant task supports it, as this is generally the most efficient. Using the other types may involve copying the contents of this collection to a temporary directory.

Parameters:
builder - The builder to add this collection to.
nodeName - The target node name.
type - The target Ant type

addToAntBuilder

Object addToAntBuilder(Object builder,
                       String nodeName)
Adds this collection to an Ant task as a nested node. Equivalent to calling addToAntBuilder(builder, nodeName,AntType.ResourceCollection).

Specified by:
addToAntBuilder in interface org.gradle.api.tasks.AntBuilderAware