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

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.AbstractResourceCollectionWrapper
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<Resource>, ResourceCollection
Direct Known Subclasses:
BaseResourceCollectionWrapper, LazyResourceCollectionWrapper

public abstract class AbstractResourceCollectionWrapper
extends DataType
implements ResourceCollection, java.lang.Cloneable

Base class for a ResourceCollection that wraps a single nested ResourceCollection.

Since:
Ant 1.8.2

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
AbstractResourceCollectionWrapper()
           
 
Method Summary
 void add(ResourceCollection c)
          Add a ResourceCollection to the container.
protected abstract  java.util.Iterator<Resource> createIterator()
          Do create an iterator on the resource collection.
protected  void dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)
          Overrides the version of DataType to recurse on all DataType child elements that may have been added.
protected  ResourceCollection getResourceCollection()
          Get the nested ResourceCollection.
protected abstract  int getSize()
          Do compute the size of the resource collection.
 boolean isCache()
          Learn whether to cache collections.
 boolean isFilesystemOnly()
          Fulfill the ResourceCollection contract.
 java.util.Iterator<Resource> 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 BaseResourceCollectionWrapper as a String.
 
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, 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
 

Constructor Detail

AbstractResourceCollectionWrapper

public AbstractResourceCollectionWrapper()
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.

add

public void add(ResourceCollection c)
         throws BuildException
Add a ResourceCollection to the container.

Parameters:
c - the ResourceCollection to add.
Throws:
BuildException - on error.

iterator

public final java.util.Iterator<Resource> iterator()
Fulfill the ResourceCollection contract.

Specified by:
iterator in interface java.lang.Iterable<Resource>
Specified by:
iterator in interface ResourceCollection
Returns:
an Iterator of Resources.

createIterator

protected abstract java.util.Iterator<Resource> createIterator()
Do create an iterator on the resource collection. The creation of the iterator is allowed to not be thread safe whereas the iterator itself should. The returned iterator will be wrapped into the FailFast one.

Returns:
the iterator on the resource collection

size

public int size()
Fulfill the ResourceCollection contract.

Specified by:
size in interface ResourceCollection
Returns:
number of elements as int.

getSize

protected abstract int getSize()
Do compute the size of the resource collection. The implementation of this function is allowed to be not thread safe.

Returns:
size of resource collection.

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<java.lang.Object> 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.

getResourceCollection

protected final ResourceCollection getResourceCollection()
Get the nested ResourceCollection.

Returns:
a ResourceCollection.
Throws:
BuildException - if no nested ResourceCollection has been provided.

toString

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

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