Class AbstractFileSet

All Implemented Interfaces:
Cloneable, SelectorContainer
Direct Known Subclasses:
DirSet, FileSet, MultiRootFileSet, Sync.SyncTarget

public abstract class AbstractFileSet extends DataType implements Cloneable, SelectorContainer
Class that holds an implicit patternset and supports nested patternsets and creates a DirectoryScanner using these patterns.

Common base class for DirSet and FileSet.

  • Constructor Details

    • AbstractFileSet

      public AbstractFileSet()
      Construct a new AbstractFileSet.
    • AbstractFileSet

      protected AbstractFileSet(AbstractFileSet fileset)
      Construct a new AbstractFileSet, shallowly cloned from the specified AbstractFileSet.
      Parameters:
      fileset - the AbstractFileSet to use as a template.
  • Method Details

    • setRefid

      public void setRefid(Reference r) throws BuildException
      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 DataType
      Parameters:
      r - the Reference to use.
      Throws:
      BuildException - on error
    • setDir

      public void setDir(File dir) throws BuildException
      Sets the base-directory for this instance.
      Parameters:
      dir - the directory's File instance.
      Throws:
      BuildException - on error
    • getDir

      public File getDir()
      Retrieves the base-directory for this instance.
      Returns:
      File.
    • getDir

      public File getDir(Project p)
      Retrieves the base-directory for this instance.
      Parameters:
      p - the Project against which the reference is resolved, if set.
      Returns:
      File.
    • createPatternSet

      public PatternSet createPatternSet()
      Creates a nested patternset.
      Returns:
      PatternSet.
    • createInclude

      public PatternSet.NameEntry createInclude()
      Add a name entry to the include list.
      Returns:
      PatternSet.NameEntry.
    • createIncludesFile

      public PatternSet.NameEntry createIncludesFile()
      Add a name entry to the include files list.
      Returns:
      PatternSet.PatternFileNameEntry.
    • createExclude

      public PatternSet.NameEntry createExclude()
      Add a name entry to the exclude list.
      Returns:
      PatternSet.NameEntry.
    • createExcludesFile

      public PatternSet.NameEntry createExcludesFile()
      Add a name entry to the excludes files list.
      Returns:
      PatternSet.PatternFileNameEntry.
    • setFile

      public void setFile(File file)
      Creates a single file fileset.
      Parameters:
      file - the single File included in this AbstractFileSet.
    • setIncludes

      public void setIncludes(String includes)
      Appends includes to the current list of include patterns.

      Patterns may be separated by a comma or a space.

      Parameters:
      includes - the String containing the include patterns.
    • appendIncludes

      public void appendIncludes(String[] includes)
      Appends includes to the current list of include patterns.
      Parameters:
      includes - array containing the include patterns.
      Since:
      Ant 1.7
    • setExcludes

      public void setExcludes(String excludes)
      Appends excludes to the current list of exclude patterns.

      Patterns may be separated by a comma or a space.

      Parameters:
      excludes - the String containing the exclude patterns.
    • appendExcludes

      public void appendExcludes(String[] excludes)
      Appends excludes to the current list of exclude patterns.
      Parameters:
      excludes - array containing the exclude patterns.
      Since:
      Ant 1.7
    • setIncludesfile

      public void setIncludesfile(File incl) throws BuildException
      Sets the File containing the includes patterns.
      Parameters:
      incl - File instance.
      Throws:
      BuildException - on error
    • setExcludesfile

      public void setExcludesfile(File excl) throws BuildException
      Sets the File containing the excludes patterns.
      Parameters:
      excl - File instance.
      Throws:
      BuildException - on error
    • setDefaultexcludes

      public void setDefaultexcludes(boolean useDefaultExcludes)
      Sets whether default exclusions should be used or not.
      Parameters:
      useDefaultExcludes - boolean.
    • getDefaultexcludes

      public boolean getDefaultexcludes()
      Whether default exclusions should be used or not.
      Returns:
      the default exclusions value.
      Since:
      Ant 1.6.3
    • setCaseSensitive

      public void setCaseSensitive(boolean caseSensitive)
      Sets case sensitivity of the file system.
      Parameters:
      caseSensitive - boolean.
    • isCaseSensitive

      public boolean isCaseSensitive()
      Find out if the fileset is case sensitive.
      Returns:
      boolean indicating whether the fileset is case sensitive.
      Since:
      Ant 1.7
    • setFollowSymlinks

      public void setFollowSymlinks(boolean followSymlinks)
      Sets whether or not symbolic links should be followed.
      Parameters:
      followSymlinks - whether or not symbolic links should be followed.
    • isFollowSymlinks

      public boolean isFollowSymlinks()
      Find out if the fileset wants to follow symbolic links.
      Returns:
      boolean indicating whether symbolic links should be followed.
      Since:
      Ant 1.6
    • setMaxLevelsOfSymlinks

      public void setMaxLevelsOfSymlinks(int max)
      The maximum number of times a symbolic link may be followed during a scan.
      Parameters:
      max - int
      Since:
      Ant 1.8.0
    • getMaxLevelsOfSymlinks

      public int getMaxLevelsOfSymlinks()
      The maximum number of times a symbolic link may be followed during a scan.
      Returns:
      int
      Since:
      Ant 1.8.0
    • setErrorOnMissingDir

      public void setErrorOnMissingDir(boolean errorOnMissingDir)
      Sets whether an error is thrown if a directory does not exist.
      Parameters:
      errorOnMissingDir - true if missing directories cause errors, false if not.
    • getErrorOnMissingDir

      public boolean getErrorOnMissingDir()
      Gets whether an error is/should be thrown if the base directory does not exist.
      Returns:
      boolean
      Since:
      Ant 1.8.2
    • getDirectoryScanner

      public DirectoryScanner getDirectoryScanner()
      Returns the directory scanner needed to access the files to process.
      Returns:
      a DirectoryScanner instance.
    • getDirectoryScanner

      public DirectoryScanner getDirectoryScanner(Project p)
      Returns the directory scanner needed to access the files to process.
      Parameters:
      p - the Project against which the DirectoryScanner should be configured.
      Returns:
      a DirectoryScanner instance.
    • setupDirectoryScanner

      public void setupDirectoryScanner(FileScanner ds)
      Set up the specified directory scanner against this AbstractFileSet's Project.
      Parameters:
      ds - a FileScanner instance.
    • setupDirectoryScanner

      public void setupDirectoryScanner(FileScanner ds, Project p)
      Set up the specified directory scanner against the specified project.
      Parameters:
      ds - a FileScanner instance.
      p - an Ant Project instance.
    • getRef

      protected AbstractFileSet getRef(Project p)
      Performs the check for circular references and returns the referenced FileSet. This method can be overridden together with getRef() providing implementations containing the special support for FileSet references, which can be handled by all ArchiveFileSets. NB! This method must be overridden in subclasses such as FileSet and DirSet to distinguish between the data types.
      Parameters:
      p - the current project
      Returns:
      the dereferenced object.
    • hasSelectors

      public boolean hasSelectors()
      Indicates whether there are any selectors here.
      Specified by:
      hasSelectors in interface SelectorContainer
      Returns:
      whether any selectors are in this container.
    • hasPatterns

      public boolean hasPatterns()
      Indicates whether there are any patterns here.
      Returns:
      whether any patterns are in this container.
    • selectorCount

      public int selectorCount()
      Gives the count of the number of selectors in this container.
      Specified by:
      selectorCount in interface SelectorContainer
      Returns:
      the number of selectors in this container as an int.
    • getSelectors

      public FileSelector[] getSelectors(Project p)
      Returns the set of selectors as an array.
      Specified by:
      getSelectors in interface SelectorContainer
      Parameters:
      p - the current project
      Returns:
      a FileSelector[] of the selectors in this container.
    • selectorElements

      public Enumeration<FileSelector> selectorElements()
      Returns an enumerator for accessing the set of selectors.
      Specified by:
      selectorElements in interface SelectorContainer
      Returns:
      an Enumeration of selectors.
    • appendSelector

      public void appendSelector(FileSelector selector)
      Add a new selector into this container.
      Specified by:
      appendSelector in interface SelectorContainer
      Parameters:
      selector - the new FileSelector to add.
    • addSelector

      public void addSelector(SelectSelector selector)
      Add a "Select" selector entry on the selector list.
      Specified by:
      addSelector in interface SelectorContainer
      Parameters:
      selector - the SelectSelector to add.
    • addAnd

      public void addAnd(AndSelector selector)
      Add an "And" selector entry on the selector list.
      Specified by:
      addAnd in interface SelectorContainer
      Parameters:
      selector - the AndSelector to add.
    • addOr

      public void addOr(OrSelector selector)
      Add an "Or" selector entry on the selector list.
      Specified by:
      addOr in interface SelectorContainer
      Parameters:
      selector - the OrSelector to add.
    • addNot

      public void addNot(NotSelector selector)
      Add a "Not" selector entry on the selector list.
      Specified by:
      addNot in interface SelectorContainer
      Parameters:
      selector - the NotSelector to add.
    • addNone

      public void addNone(NoneSelector selector)
      Add a "None" selector entry on the selector list.
      Specified by:
      addNone in interface SelectorContainer
      Parameters:
      selector - the NoneSelector to add.
    • addMajority

      public void addMajority(MajoritySelector selector)
      Add a majority selector entry on the selector list.
      Specified by:
      addMajority in interface SelectorContainer
      Parameters:
      selector - the MajoritySelector to add.
    • addDate

      public void addDate(DateSelector selector)
      Add a selector date entry on the selector list.
      Specified by:
      addDate in interface SelectorContainer
      Parameters:
      selector - the DateSelector to add.
    • addSize

      public void addSize(SizeSelector selector)
      Add a selector size entry on the selector list.
      Specified by:
      addSize in interface SelectorContainer
      Parameters:
      selector - the SizeSelector to add.
    • addDifferent

      public void addDifferent(DifferentSelector selector)
      Add a DifferentSelector entry on the selector list.
      Specified by:
      addDifferent in interface SelectorContainer
      Parameters:
      selector - the DifferentSelector to add.
    • addFilename

      public void addFilename(FilenameSelector selector)
      Add a selector filename entry on the selector list.
      Specified by:
      addFilename in interface SelectorContainer
      Parameters:
      selector - the FilenameSelector to add.
    • addType

      public void addType(TypeSelector selector)
      Add a selector type entry on the selector list.
      Specified by:
      addType in interface SelectorContainer
      Parameters:
      selector - the TypeSelector to add.
    • addCustom

      public void addCustom(ExtendSelector selector)
      Add an extended selector entry on the selector list.
      Specified by:
      addCustom in interface SelectorContainer
      Parameters:
      selector - the ExtendSelector to add.
    • addContains

      public void addContains(ContainsSelector selector)
      Add a contains selector entry on the selector list.
      Specified by:
      addContains in interface SelectorContainer
      Parameters:
      selector - the ContainsSelector to add.
    • addPresent

      public void addPresent(PresentSelector selector)
      Add a present selector entry on the selector list.
      Specified by:
      addPresent in interface SelectorContainer
      Parameters:
      selector - the PresentSelector to add.
    • addDepth

      public void addDepth(DepthSelector selector)
      Add a depth selector entry on the selector list.
      Specified by:
      addDepth in interface SelectorContainer
      Parameters:
      selector - the DepthSelector to add.
    • addDepend

      public void addDepend(DependSelector selector)
      Add a depends selector entry on the selector list.
      Specified by:
      addDepend in interface SelectorContainer
      Parameters:
      selector - the DependSelector to add.
    • addContainsRegexp

      public void addContainsRegexp(ContainsRegexpSelector selector)
      Add a regular expression selector entry on the selector list.
      Specified by:
      addContainsRegexp in interface SelectorContainer
      Parameters:
      selector - the ContainsRegexpSelector to add.
    • addModified

      public void addModified(ModifiedSelector selector)
      Add the modified selector.
      Specified by:
      addModified in interface SelectorContainer
      Parameters:
      selector - the ModifiedSelector to add.
      Since:
      Ant 1.6
    • addReadable

      public void addReadable(ReadableSelector r)
    • addWritable

      public void addWritable(WritableSelector w)
    • addExecutable

      public void addExecutable(ExecutableSelector e)
      Parameters:
      e - ExecutableSelector
      Since:
      1.10.0
    • addSymlink

      public void addSymlink(SymlinkSelector e)
      Parameters:
      e - SymlinkSelector
      Since:
      1.10.0
    • addOwnedBy

      public void addOwnedBy(OwnedBySelector o)
      Parameters:
      o - OwnedBySelector
      Since:
      1.10.0
    • addPosixGroup

      public void addPosixGroup(PosixGroupSelector o)
      Parameters:
      o - PosixGroupSelector
      Since:
      1.10.4
    • addPosixPermissions

      public void addPosixPermissions(PosixPermissionsSelector o)
      Parameters:
      o - PosixPermissionsSelector
      Since:
      1.10.4
    • add

      public void add(FileSelector selector)
      Add an arbitrary selector.
      Specified by:
      add in interface SelectorContainer
      Parameters:
      selector - the FileSelector to add.
      Since:
      Ant 1.6
    • toString

      public String toString()
      Returns included files as a list of semicolon-separated filenames.
      Overrides:
      toString in class DataType
      Returns:
      a String of included filenames.
    • clone

      public Object clone()
      Creates a deep clone of this instance, except for the nested selectors (the list of selectors is a shallow clone of this instance's list).
      Overrides:
      clone in class DataType
      Returns:
      the cloned object
      Since:
      Ant 1.6
    • mergeIncludes

      public String[] mergeIncludes(Project p)
      Get the merged include patterns for this AbstractFileSet.
      Parameters:
      p - the project to use.
      Returns:
      the include patterns of the default pattern set and all nested patternsets.
      Since:
      Ant 1.7
    • mergeExcludes

      public String[] mergeExcludes(Project p)
      Get the merged exclude patterns for this AbstractFileSet.
      Parameters:
      p - the project to use.
      Returns:
      the exclude patterns of the default pattern set and all nested patternsets.
      Since:
      Ant 1.7
    • mergePatterns

      public PatternSet mergePatterns(Project p)
      Get the merged patterns for this AbstractFileSet.
      Parameters:
      p - the project to use.
      Returns:
      the default patternset merged with the additional sets in a new PatternSet instance.
      Since:
      Ant 1.7
    • dieOnCircularReference

      protected void dieOnCircularReference(Stack<Object> stk, Project p) throws BuildException
      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 DataType.checked is true and set it to true on exit.

      Overrides:
      dieOnCircularReference in class DataType
      Parameters:
      stk - the stack of references to check.
      p - the project to use to dereference the references.
      Throws:
      BuildException - on error.