ClassfileSet (Apache Ant API)
Date: 2015-07-03

org.apache.tools.ant.types.optional.depend

## Class ClassfileSet

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.AbstractFileSet
      - - org.apache.tools.ant.types.FileSet
        - - org.apache.tools.ant.types.optional.depend.ClassfileSet

- All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<Resource>, ResourceCollection, SelectorContainer

      public class ClassfileSet
      extends FileSet

  A ClassfileSet is a FileSet that enlists all classes that depend on a certain set of root classes. ClassfileSet extends FileSet, its inherited properties defining the domain searched for dependent classes.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ClassfileSet.ClassRoot` Inner class used to contain info about root classes.

  - ### 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

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `ClassfileSet()` Default constructor.
    `protected` | `ClassfileSet(ClassfileSet s)` Create a ClassfileSet from another ClassfileSet.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfiguredRoot(ClassfileSet.ClassRoot root)` Add a nested root class definition to this class file set.
    `void` | `addRootFileset(FileSet rootFileSet)` Add a fileset to which contains a collection of root classes used to drive the search from classes.
    `java.lang.Object` | `clone()` Clone this data type.
    `protected void` | `dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)` Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).
    `DirectoryScanner` | `getDirectoryScanner(Project p)` Return the DirectoryScanner associated with this FileSet.
    `void` | `setRootClass(java.lang.String rootClass)` Set the root class attribute.

    - ### Methods inherited from class org.apache.tools.ant.types.FileSet

      `isFilesystemOnly, iterator, size`

    - ### Methods inherited from class org.apache.tools.ant.types.AbstractFileSet

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addReadable, addSelector, addSize, addType, addWritable, appendExcludes, appendIncludes, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDefaultexcludes, getDir, getDir, getDirectoryScanner, getErrorOnMissingDir, getMaxLevelsOfSymlinks, getRef, getSelectors, hasPatterns, hasSelectors, isCaseSensitive, isFollowSymlinks, mergeExcludes, mergeIncludes, mergePatterns, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setDir, setErrorOnMissingDir, setExcludes, setExcludesfile, setFile, setFollowSymlinks, setIncludes, setIncludesfile, setMaxLevelsOfSymlinks, setRefid, setupDirectoryScanner, setupDirectoryScanner, toString`

    - ### 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, pushAndInvokeCircularReferenceCheck, setChecked, 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

    - #### ClassfileSet

          public ClassfileSet()

      Default constructor.

    - #### ClassfileSet

          protected ClassfileSet(ClassfileSet s)

      Create a ClassfileSet from another ClassfileSet.
      Parameters:
        `s` - the other classfileset.

  - ### Method Detail

    - #### addRootFileset

          public void addRootFileset(FileSet rootFileSet)

      Add a fileset to which contains a collection of root classes used to drive the search from classes.
      Parameters:
        `rootFileSet` - a root file set to be used to search for dependent classes.

    - #### setRootClass

          public void setRootClass(java.lang.String rootClass)

      Set the root class attribute.
      Parameters:
        `rootClass` - the name of the root class.

    - #### getDirectoryScanner

          public DirectoryScanner getDirectoryScanner(Project p)

      Return the DirectoryScanner associated with this FileSet.
      Overrides:
        `getDirectoryScanner` in class `AbstractFileSet`
      Parameters:
        `p` - the project used to resolve dirs, etc.
      Returns:
        a dependency scanner.

    - #### addConfiguredRoot

          public void addConfiguredRoot(ClassfileSet.ClassRoot root)

      Add a nested root class definition to this class file set.
      Parameters:
        `root` - the configured class root.

    - #### clone

          public java.lang.Object clone()

      Clone this data type.
      Overrides:
        `clone` in class `FileSet`
      Returns:
        a clone of the class file set.

    - #### dieOnCircularReference

          protected void dieOnCircularReference(java.util.Stack<java.lang.Object> stk,
                                    Project p)

      Description copied from class: `DataType`
      Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).

      If one is included, throw a BuildException created by `circularReference`.

      This implementation is appropriate only for a DataType that cannot hold other DataTypes as children.

      The general contract of this method is that it shouldn't do anything if ``checked`` is true and set it to true on exit.

      Overrides:
        `dieOnCircularReference` in class `AbstractFileSet`
      Parameters:
        `stk` - the stack of references to check.
        `p` - the project to use to dereference the references.