org.apache.tools.ant.types.resources
Class BaseResourceCollectionContainer

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.types.DataType
          extended by org.apache.tools.ant.types.resources.BaseResourceCollectionContainer
All Implemented Interfaces:
java.lang.Cloneable, ResourceCollection
Direct Known Subclasses:
Difference, Intersect, Union

public abstract class BaseResourceCollectionContainer
extends DataType
implements ResourceCollection, java.lang.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
 
Constructor Summary
BaseResourceCollectionContainer()
           
 
Method Summary
 void add(ResourceCollection c)
          Add a ResourceCollection to the container.
 void addAll(java.util.Collection c)
          Add the Collection of ResourceCollections to the container.
 void clear()
          Clear the container.
 java.lang.Object clone()
          Implement clone.
protected  void dieOnCircularReference(java.util.Stack stk, Project p)
          Overrides the version of DataType to recurse on all DataType child elements that may have been added.
protected abstract  java.util.Collection getCollection()
          Template method for subclasses to return a Collection object of Resources.
protected  java.util.List getResourceCollections()
          Get the nested ResourceCollections.
 boolean isCache()
          Learn whether to cache collections.
 boolean isFilesystemOnly()
          Fulfill the ResourceCollection contract.
 java.util.Iterator iterator()
          Fulfill the ResourceCollection contract.
 void setCache(boolean b)
          Set whether to cache collections.
 int size()
          Fulfill the ResourceCollection contract.
 java.lang.String toString()
          Format this BaseResourceCollectionContainer as a String.
 
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, 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
 

Constructor Detail

BaseResourceCollectionContainer

public BaseResourceCollectionContainer()
Method Detail

setCache

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

Parameters:
b - boolean cache flag.

isCache

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

Returns:
boolean cache flag.

clear

public void clear()
           throws BuildException
Clear the container.

Throws:
BuildException - on error.

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(java.util.Collection c)
            throws BuildException
Add the Collection of ResourceCollections to the container.

Parameters:
c - the Collection whose elements to add.
Throws:
BuildException - on error.

iterator

public final java.util.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.

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:
whether this is a filesystem-only resource collection.

dieOnCircularReference

protected void dieOnCircularReference(java.util.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 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.

getResourceCollections

protected final java.util.List getResourceCollections()
Get the nested ResourceCollections.

Returns:
List.

getCollection

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

Returns:
Collection.

clone

public java.lang.Object clone()
Implement clone. The set of nested resource collections is shallowly cloned.

Overrides:
clone in class DataType
Returns:
a cloned instance.

toString

public java.lang.String toString()
Format this BaseResourceCollectionContainer as a String.

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