Class BaseResourceCollectionContainer

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.types.DataType
org.apache.tools.ant.types.resources.BaseResourceCollectionContainer
All Implemented Interfaces:
Cloneable, Iterable<Resource>, ResourceCollection, AppendableResourceCollection
Direct Known Subclasses:
Difference, Intersect, Union

public abstract class BaseResourceCollectionContainer extends DataType implements AppendableResourceCollection, Cloneable
Base class for ResourceCollections that nest multiple ResourceCollections.
Since:
Ant 1.7
  • Constructor Details

    • BaseResourceCollectionContainer

      public BaseResourceCollectionContainer()
      Create a new BaseResourceCollectionContainer.
    • BaseResourceCollectionContainer

      public BaseResourceCollectionContainer(Project project)
      Create a new BaseResourceCollectionContainer.
      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.
    • 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.
      Specified by:
      add in interface AppendableResourceCollection
      Parameters:
      c - the ResourceCollection to add.
      Throws:
      BuildException - on error.
    • addAll

      public void addAll(Collection<? extends ResourceCollection> 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 Iterator<Resource> 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 Iterable<Resource>
      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(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.
    • getResourceCollections

      public final List<ResourceCollection> getResourceCollections()
      Get the nested ResourceCollections.
      Returns:
      List.
    • getCollection

      protected abstract Collection<Resource> getCollection()
      Template method for subclasses to return a Collection object of Resources.
      Returns:
      Collection.
    • clone

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

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