Class AbstractResourceCollectionWrapper

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.types.DataType
org.apache.tools.ant.types.resources.AbstractResourceCollectionWrapper
All Implemented Interfaces:
Cloneable, Iterable<Resource>, ResourceCollection
Direct Known Subclasses:
BaseResourceCollectionWrapper, LazyResourceCollectionWrapper

public abstract class AbstractResourceCollectionWrapper extends DataType implements ResourceCollection, Cloneable
Base class for a ResourceCollection that wraps a single nested ResourceCollection.
Since:
Ant 1.8.2
  • Constructor Details

    • AbstractResourceCollectionWrapper

      public AbstractResourceCollectionWrapper()
  • Method Details

    • 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 Iterator<Resource> iterator()
      Fulfill the ResourceCollection contract.
      Specified by:
      iterator in interface Iterable<Resource>
      Returns:
      an Iterator of Resources.
    • createIterator

      protected abstract 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(Stack<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 String toString()
      Format this AbstractResourceCollectionWrapper as a String.
      Overrides:
      toString in class DataType
      Returns:
      a descriptive String.