org.apache.tools.ant.types.resources

Class BaseResourceCollectionContainer

Implemented Interfaces:
Cloneable, ResourceCollection
Known Direct Subclasses:
Difference, Intersect, Union

public abstract class BaseResourceCollectionContainer
extends DataType
implements ResourceCollection, Cloneable

Base class for ResourceCollections that nest multiple ResourceCollections.
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

Method Summary

void
add(ResourceCollection c)
Add a ResourceCollection to the container.
void
addAll(Collection c)
Add the Collection of ResourceCollections to the container.
void
clear()
Clear the container.
Object
clone()
Implement clone.
protected void
dieOnCircularReference(Stack stk, Project p)
Overrides the version of DataType to recurse on all DataType child elements that may have been added.
protected abstract Collection
getCollection()
Template method for subclasses to return a Collection object of Resources.
protected List
getResourceCollections()
Get the nested ResourceCollections.
boolean
isCache()
Learn whether to cache collections.
boolean
isFilesystemOnly()
Fulfill the ResourceCollection contract.
Iterator
iterator()
Fulfill the ResourceCollection contract.
void
setCache(boolean b)
Set whether to cache collections.
int
size()
Fulfill the ResourceCollection contract.
String
toString()
Format this BaseResourceCollectionContainer as a String.

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

checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, setChecked, setRefid, toString, tooManyAttributes

Methods inherited from class org.apache.tools.ant.ProjectComponent

clone, getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject

Method Details

add

public void add(ResourceCollection c)
            throws BuildException
Add a ResourceCollection to the container.
Parameters:
c - the ResourceCollection to add.
Throws:
BuildException - on error.

addAll

public void addAll(Collection c)
            throws BuildException
Add the Collection of ResourceCollections to the container.
Parameters:
c - the Collection whose elements to add.
Throws:
BuildException - on error.

clear

public void clear()
            throws BuildException
Clear the container.
Throws:
BuildException - on error.

clone

public Object clone()
Implement clone. The set of nested resource collections is shallowly cloned.
Overrides:
clone in interface DataType
Returns:
a cloned instance.

dieOnCircularReference

protected void dieOnCircularReference(Stack 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 interface DataType
Parameters:
stk - the stack of data types to use (recursively).
p - the project to use to dereference the references.
Throws:
BuildException - on error.

getCollection

protected abstract Collection getCollection()
Template method for subclasses to return a Collection object of Resources.
Returns:
Collection.

getResourceCollections

protected final List getResourceCollections()
Get the nested ResourceCollections.
Returns:
List.

isCache

public boolean isCache()
Learn whether to cache collections. Default is true.
Returns:
boolean cache flag.

isFilesystemOnly

public boolean isFilesystemOnly()
Fulfill the ResourceCollection contract.
Specified by:
isFilesystemOnly in interface ResourceCollection
Returns:
whether this is a filesystem-only resource collection.

iterator

public final Iterator iterator()
Fulfill the ResourceCollection contract. The Iterator returned will throw ConcurrentModificationExceptions if ResourceCollections are added to this container while the Iterator is in use.
Specified by:
iterator in interface ResourceCollection
Returns:
a "fail-fast" Iterator.

setCache

public void setCache(boolean b)
Set whether to cache collections.
Parameters:
b - boolean cache flag.

size

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

toString

public String toString()
Format this BaseResourceCollectionContainer as a String.
Overrides:
toString in interface DataType
Returns:
a descriptive String.