Class ArchiveFileSet

  • All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<Resource>, ResourceCollection, SelectorContainer
    Direct Known Subclasses:
    TarFileSet, ZipFileSet

    public abstract class ArchiveFileSet
    extends FileSet
    A ArchiveFileSet is a FileSet with extra attributes useful in the context of archiving tasks. It includes a prefix attribute which is prepended to each entry in the output archive file as well as a fullpath attribute. It also supports Unix file permissions for files and directories.
    Since:
    Ant 1.7
    • Field Detail

      • DEFAULT_DIR_MODE

        public static final int DEFAULT_DIR_MODE
        Default value for the dirmode attribute.
        Since:
        Ant 1.5.2
        See Also:
        Constant Field Values
      • DEFAULT_FILE_MODE

        public static final int DEFAULT_FILE_MODE
        Default value for the filemode attribute.
        Since:
        Ant 1.5.2
        See Also:
        Constant Field Values
    • Constructor Detail

      • ArchiveFileSet

        public ArchiveFileSet()
        Constructor for ArchiveFileSet
      • ArchiveFileSet

        protected ArchiveFileSet​(FileSet fileset)
        Constructor using a fileset argument.
        Parameters:
        fileset - the fileset to use
      • ArchiveFileSet

        protected ArchiveFileSet​(ArchiveFileSet fileset)
        Constructor using a archive fileset argument.
        Parameters:
        fileset - the archivefileset to use
    • Method Detail

      • addConfigured

        public void addConfigured​(ResourceCollection a)
        Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.
        Parameters:
        a - the archive as a single element Resource collection.
      • setSrc

        public void setSrc​(java.io.File srcFile)
        Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.
        Parameters:
        srcFile - The archive from which to extract entries.
      • setSrcResource

        public void setSrcResource​(Resource src)
        Set the source Archive file for the archivefileset. Prevents both "dir" and "src" from being specified.
        Parameters:
        src - The archive from which to extract entries.
      • getSrc

        public java.io.File getSrc​(Project p)
        Get the archive from which entries will be extracted.
        Parameters:
        p - the project to use
        Returns:
        the source file
      • setErrorOnMissingArchive

        public void setErrorOnMissingArchive​(boolean errorOnMissingArchive)
        Sets whether an error is thrown if an archive does not exist.
        Parameters:
        errorOnMissingArchive - true if missing archives cause errors, false if not.
        Since:
        Ant 1.8.0
      • getSrc

        public java.io.File getSrc()
        Get the archive file from which entries will be extracted.
        Returns:
        the archive in case the archive is a file, null otherwise.
      • getRef

        protected AbstractFileSet getRef()
        Performs the check for circular references and returns the referenced object. This method must be overridden together with getRef(Project) providing implementations containing the special support for FileSet references, which can be handled by all ArchiveFileSets. NB! This method cannot be implemented in AbstractFileSet in order to allow FileSet and DirSet to implement it as a private method.
        Returns:
        the dereferenced object.
        Throws:
        BuildException - if the reference is invalid (circular ref, wrong class, etc).
      • setPrefix

        public void setPrefix​(java.lang.String prefix)
        Prepend this prefix to the path for each archive entry. Prevents both prefix and fullpath from being specified
        Parameters:
        prefix - The prefix to prepend to entries in the archive file.
      • getPrefix

        public java.lang.String getPrefix​(Project p)
        Return the prefix prepended to entries in the archive file.
        Parameters:
        p - the project to use
        Returns:
        the prefix
      • setFullpath

        public void setFullpath​(java.lang.String fullpath)
        Set the full pathname of the single entry in this fileset. Prevents both prefix and fullpath from being specified
        Parameters:
        fullpath - the full pathname of the single entry in this fileset.
      • getFullpath

        public java.lang.String getFullpath​(Project p)
        Return the full pathname of the single entry in this fileset.
        Parameters:
        p - the project to use
        Returns:
        the full path
      • setEncoding

        public void setEncoding​(java.lang.String enc)
        Set the encoding used for this ZipFileSet.
        Parameters:
        enc - encoding as String.
        Since:
        Ant 1.9.5
      • getEncoding

        public java.lang.String getEncoding()
        Get the encoding used for this ZipFileSet.
        Returns:
        String encoding.
        Since:
        Ant 1.9.5
      • newArchiveScanner

        protected abstract ArchiveScanner newArchiveScanner()
        Creates a scanner for this type of archive.
        Returns:
        the scanner.
      • getDirectoryScanner

        public DirectoryScanner getDirectoryScanner​(Project p)
        Return the DirectoryScanner associated with this FileSet. If the ArchiveFileSet defines a source Archive file, then an ArchiveScanner is returned instead.
        Overrides:
        getDirectoryScanner in class AbstractFileSet
        Parameters:
        p - the project to use
        Returns:
        a directory scanner
      • iterator

        public java.util.Iterator<Resource> iterator()
        Fulfill the ResourceCollection contract.
        Specified by:
        iterator in interface java.lang.Iterable<Resource>
        Overrides:
        iterator in class FileSet
        Returns:
        Iterator of Resources.
        Since:
        Ant 1.7
      • size

        public int size()
        Fulfill the ResourceCollection contract.
        Specified by:
        size in interface ResourceCollection
        Overrides:
        size in class FileSet
        Returns:
        size of the collection as int.
        Since:
        Ant 1.7
      • isFilesystemOnly

        public boolean isFilesystemOnly()
        Indicate whether this ResourceCollection is composed entirely of Resources accessible via local filesystem conventions. If true, all Resources returned from this ResourceCollection should be instances of FileResource.
        Specified by:
        isFilesystemOnly in interface ResourceCollection
        Overrides:
        isFilesystemOnly in class FileSet
        Returns:
        whether this is a filesystem-only resource collection.
        Since:
        Ant 1.7
      • setFileMode

        public void setFileMode​(java.lang.String octalString)
        A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0644
        Parameters:
        octalString - a String value
      • integerSetFileMode

        public void integerSetFileMode​(int mode)
        specify the user, group and other modes in the standard Unix fashion; optional, default=0644

        We use the strange name so this method doesn't appear in IntrospectionHelpers list of attribute setters.

        Parameters:
        mode - a int value
        Since:
        Ant 1.7
      • getFileMode

        public int getFileMode​(Project p)
        Get the mode of the archive fileset
        Parameters:
        p - the project to use
        Returns:
        the mode
      • hasFileModeBeenSet

        public boolean hasFileModeBeenSet()
        Whether the user has specified the mode explicitly.
        Returns:
        true if it has been set
      • setDirMode

        public void setDirMode​(java.lang.String octalString)
        A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion; optional, default=0755
        Parameters:
        octalString - a String value
      • integerSetDirMode

        public void integerSetDirMode​(int mode)
        specify the user, group and other modes in the standard Unix fashion; optional, default=0755

        We use the strange name so this method doesn't appear in IntrospectionHelpers list of attribute setters.

        Parameters:
        mode - a int value
        Since:
        Ant 1.7
      • getDirMode

        public int getDirMode​(Project p)
        Get the dir mode of the archive fileset
        Parameters:
        p - the project to use
        Returns:
        the mode
      • hasDirModeBeenSet

        public boolean hasDirModeBeenSet()
        Whether the user has specified the mode explicitly.
        Returns:
        true if it has been set
      • configureFileSet

        protected void configureFileSet​(ArchiveFileSet zfs)
        A ArchiveFileset accepts another ArchiveFileSet or a FileSet as reference FileSets are often used by the war task for the lib attribute
        Parameters:
        zfs - the project to use
      • clone

        public java.lang.Object clone()
        Return a ArchiveFileSet that has the same properties as this one.
        Overrides:
        clone in class FileSet
        Returns:
        the cloned archiveFileSet
        Since:
        Ant 1.6
      • toString

        public java.lang.String toString()
        For file-based archivefilesets, return the same as for normal filesets; else just return the path of the zip.
        Overrides:
        toString in class AbstractFileSet
        Returns:
        for file based archivefilesets, included files as a list of semicolon-separated filenames. else just the name of the zip.
      • getPrefix

        @Deprecated
        public java.lang.String getPrefix()
        Deprecated.
        since 1.7.
        Return the prefix prepended to entries in the archive file.
        Returns:
        the prefix.
      • getFullpath

        @Deprecated
        public java.lang.String getFullpath()
        Deprecated.
        since 1.7.
        Return the full pathname of the single entryZ in this fileset.
        Returns:
        the full pathname.
      • getFileMode

        @Deprecated
        public int getFileMode()
        Deprecated.
        since 1.7.
        Returns:
        the file mode.
      • getDirMode

        @Deprecated
        public int getDirMode()
        Deprecated.
        since 1.7.
        Returns:
        the dir mode.
      • dieOnCircularReference

        protected void dieOnCircularReference​(java.util.Stack<java.lang.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 AbstractFileSet
        Parameters:
        stk - the stack of references to check.
        p - the project to use to dereference the references.
        Throws:
        BuildException - on error.