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

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.AbstractFileSet
              extended by org.apache.tools.ant.types.FileSet
                  extended by 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
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
  ClassfileSet()
          Default constructor.
protected ClassfileSet(ClassfileSet s)
          Create a ClassfileSet from another ClassfileSet.
 
Method Summary
 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.