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

# Class Resources

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

All Implemented Interfaces:
  `Cloneable`, `Iterable<Resource>`, `ResourceCollection`, `AppendableResourceCollection`

public class Resources extends DataType implements AppendableResourceCollection
Generic `ResourceCollection`: Either stores nested `ResourceCollection`s, making no attempt to remove duplicates, or references another `ResourceCollection`.

Since:
  Ant 1.7

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Iterator<Resource>`
`EMPTY_ITERATOR`
`static` empty `Iterator`
`static final ResourceCollection`
`NONE`
`static` empty `ResourceCollection`

### 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
Description
`Resources()`
Create a new `Resources`.
`Resources(Project project)`
Create a new `Resources`.

## Method Summary

Modifier and Type
Method
Description
`void`
`add(ResourceCollection c)`
Add a `ResourceCollection`.
`protected void`
`dieOnCircularReference(Stack<Object> stk, Project p)`
Overrides the base implementation to recurse on all `DataType` child elements that may have been added.
`protected void`
`invalidateExistingIterators()`
Allow subclasses to notify existing Iterators they have experienced concurrent modification.
`boolean`
`isFilesystemOnly()`
Fulfill the `ResourceCollection` contract.
`Iterator<Resource>`
`iterator()`
Fulfill the `ResourceCollection` contract.
`void`
`setCache(boolean b)`
Set whether to cache collections.
`int`
`size()`
Fulfill the `ResourceCollection` contract.
`String`
`toString()`
Format this `Resources` as a `String`.

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

`checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, setRefid, 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`

## Field Details

### NONE

public static final ResourceCollection NONE
`static` empty `ResourceCollection`

### EMPTY_ITERATOR

public static final Iterator<Resource> EMPTY_ITERATOR
`static` empty `Iterator`

## Constructor Details

### Resources

public Resources()
Create a new `Resources`.

### Resources

public Resources(Project project)
Create a new `Resources`.

Parameters:
  `project` - `Project`
Since:
  Ant 1.8

## Method Details

### setCache

public void setCache(boolean b)
Set whether to cache collections.

Parameters:
  `b` - `boolean` cache flag.
Since:
  Ant 1.8.0

### add

public void add(ResourceCollection c)
Add a `ResourceCollection`.

Specified by:
  `add` in interface `AppendableResourceCollection`
Parameters:
  `c` - the `ResourceCollection` to add.

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

### isFilesystemOnly

public boolean isFilesystemOnly()
Fulfill the `ResourceCollection` contract.

Specified by:
  `isFilesystemOnly` in interface `ResourceCollection`
Returns:
  `true` if all `Resource`s represent files.

### toString

public String toString()
Format this `Resources` as a `String`.

Overrides:
  `toString` in class `DataType`
Returns:
  a descriptive `String`.

### dieOnCircularReference

protected void dieOnCircularReference(Stack<Object> stk, Project p) throws BuildException
Overrides the base implementation 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.

### invalidateExistingIterators

protected void invalidateExistingIterators()
Allow subclasses to notify existing Iterators they have experienced concurrent modification.