org.apache.tools.ant.types.resources

## Class MultiRootFileSet

- 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.resources.MultiRootFileSet

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

      public class MultiRootFileSet
      extends AbstractFileSet
      implements ResourceCollection

  Union of file/dirsets that share the same patterns and selectors but have different roots.
  Since:
    Ant 1.9.4

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `MultiRootFileSet.SetType` What to return from the set: files, directories or both.

  - ### 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
    Constructor and Description
    `MultiRootFileSet()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfiguredBaseDir(FileResource r)` Adds a basedir as nested element.
    `java.lang.Object` | `clone()` Return a MultiRootFileSet that has the same basedirs and same patternsets as this one.
    `boolean` | `isFilesystemOnly()` Always returns true.
    `java.util.Iterator<Resource>` | `iterator()` Fulfill the ResourceCollection contract.
    `void` | `setBaseDirs(java.lang.String dirs)` Adds basedirs as a comma separated list.
    `void` | `setCache(boolean b)` Set whether to cache collections.
    `void` | `setDir(java.io.File dir)` Sets the base-directory for this instance.
    `void` | `setRefid(Reference r)` Makes this instance in effect a reference to another instance.
    `void` | `setType(MultiRootFileSet.SetType type)` Determines the types of resources to return.
    `int` | `size()` Fulfill the ResourceCollection contract.
    `java.lang.String` | `toString()` Returns included directories as a list of semicolon-separated paths.

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

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### MultiRootFileSet

          public MultiRootFileSet()

  - ### Method Detail

    - #### setDir

          public void setDir(java.io.File dir)

      Description copied from class: `AbstractFileSet`
      Sets the base-directory for this instance.
      Overrides:
        `setDir` in class `AbstractFileSet`
      Parameters:
        `dir` - the directory's `File` instance.

    - #### setType

          public void setType(MultiRootFileSet.SetType type)

      Determines the types of resources to return.
      Parameters:
        `type` - the types of resources to return

    - #### setCache

          public void setCache(boolean b)

      Set whether to cache collections.
      Parameters:
        `b` - boolean cache flag.

    - #### setBaseDirs

          public void setBaseDirs(java.lang.String dirs)

      Adds basedirs as a comma separated list.
      Parameters:
        `dirs` - directories as CSV

    - #### addConfiguredBaseDir

          public void addConfiguredBaseDir(FileResource r)

      Adds a basedir as nested element.
      Parameters:
        `r` - basedir

    - #### setRefid

          public void setRefid(Reference r)

      Description copied from class: `AbstractFileSet`
      Makes this instance in effect a reference to another instance.

      You must not set another attribute or nest elements inside this element if you make it a reference.

      Overrides:
        `setRefid` in class `AbstractFileSet`
      Parameters:
        `r` - the `Reference` to use.

    - #### clone

          public java.lang.Object clone()

      Return a MultiRootFileSet that has the same basedirs and same patternsets as this one.
      Overrides:
        `clone` in class `AbstractFileSet`
      Returns:
        the cloned MultiRootFileSet.

    - #### iterator

          public java.util.Iterator<Resource> iterator()

      Fulfill the ResourceCollection contract.
      Specified by:
        `iterator` in interface `java.lang.Iterable<Resource>`
      Specified by:
        `iterator` in interface `ResourceCollection`
      Returns:
        an Iterator of Resources.

    - #### size

          public int size()

      Fulfill the ResourceCollection contract.
      Specified by:
        `size` in interface `ResourceCollection`
      Returns:
        number of elements as int.

    - #### isFilesystemOnly

          public boolean isFilesystemOnly()

      Always returns true.
      Specified by:
        `isFilesystemOnly` in interface `ResourceCollection`
      Returns:
        true indicating that all elements will be FileResources.

    - #### toString

          public java.lang.String toString()

      Returns included directories as a list of semicolon-separated paths.
      Overrides:
        `toString` in class `AbstractFileSet`
      Returns:
        a `String` of included directories.