DependSet (Apache Ant API)
Date: 2016-04-09

org.apache.tools.ant.taskdefs

## Class DependSet

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.MatchingTask
      - - org.apache.tools.ant.taskdefs.DependSet

- All Implemented Interfaces:
    java.lang.Cloneable, SelectorContainer

      public class DependSet
      extends MatchingTask

  Examines and removes out of date target files. If any of the target files are out of date with respect to any of the source files, all target files are removed. This is useful where dependencies cannot be computed (for example, dynamically interpreted parameters or files that need to stay in synch but are not directly linked) or where the ant task in question could compute them but does not (for example, the linked DTD for an XML file using the XSLT task). nested arguments:
  - sources (resource union describing the source resources to examine)
  - srcfileset (fileset describing the source files to examine)
  - srcfilelist (filelist describing the source files to examine)
  - targets (path describing the target files to examine)
  - targetfileset (fileset describing the target files to examine)
  - targetfilelist (filelist describing the target files to examine)
  At least one of both source and target entities is required.

  This task will examine each of the sources against each of the target files. If any target files are out of date with respect to any of the sources, all targets are removed. If any sources or targets do not exist, all targets are removed. Hint: If missing files should be ignored, specify them as include patterns in filesets, rather than using filelists.

  This task attempts to optimize speed of dependency checking by comparing only the dates of the oldest target file and the newest source.

  Example uses:

  - Record the fact that an XML file must be up to date with respect to its XSD (Schema file), even though the XML file itself includes no reference to its XSD.
  - Record the fact that an XSL stylesheet includes other sub-stylesheets
  - Record the fact that java files must be recompiled if the ant build file changes
  Since:
    Ant 1.4

- - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `fileset`

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DependSet()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addSrcfilelist(FileList fl)` Add a list of source files.
    `void` | `addSrcfileset(FileSet fs)` Add a set of source files.
    `void` | `addTargetfilelist(FileList fl)` Add a list of target files.
    `void` | `addTargetfileset(FileSet fs)` Add a set of target files.
    `Union` | `createSources()` Create a nested sources element.
    `Path` | `createTargets()` Create a nested targets element.
    `void` | `execute()` Execute the task.
    `void` | `setVerbose(boolean b)` In verbose mode missing targets and sources as well as the modification times of the newest source and latest target will be logged as info.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DependSet

          public DependSet()

  - ### Method Detail

    - #### createSources

          public Union createSources()

      Create a nested sources element.
      Returns:
        a Union instance.

    - #### addSrcfileset

          public void addSrcfileset(FileSet fs)

      Add a set of source files.
      Parameters:
        `fs` - the FileSet to add.

    - #### addSrcfilelist

          public void addSrcfilelist(FileList fl)

      Add a list of source files.
      Parameters:
        `fl` - the FileList to add.

    - #### createTargets

          public Path createTargets()

      Create a nested targets element.
      Returns:
        a Union instance.

    - #### addTargetfileset

          public void addTargetfileset(FileSet fs)

      Add a set of target files.
      Parameters:
        `fs` - the FileSet to add.

    - #### addTargetfilelist

          public void addTargetfilelist(FileList fl)

      Add a list of target files.
      Parameters:
        `fl` - the FileList to add.

    - #### setVerbose

          public void setVerbose(boolean b)

      In verbose mode missing targets and sources as well as the modification times of the newest source and latest target will be logged as info.

      All deleted files will be logged as well.

      Since:
        Ant 1.8.0

    - #### execute

          public void execute()
                       throws BuildException

      Execute the task.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if errors occur.