org.apache.tools.ant.taskdefs.optional

## Class Cab

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

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

      public class Cab
      extends MatchingTask

  Create a CAB archive.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `archiveType`

    - ### 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
    `Cab()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFileset(FileSet set)` Adds a set of files to archive.
    `protected void` | `appendFiles(java.util.Vector files, DirectoryScanner ds)` Append all files found by a directory scanner to a vector.
    `protected void` | `checkConfiguration()` Check if the attributes and nested elements are correct.
    `protected ExecTask` | `createExec()` Create a new exec delegate.
    `protected java.io.File` | `createListFile(java.util.Vector files)` Creates a list file.
    `void` | `execute()` execute this task.
    `protected java.util.Vector` | `getFileList()` Get the complete list of files to be included in the cab.
    `protected boolean` | `isUpToDate(java.util.Vector files)` Check to see if the target is up to date with respect to input files.
    `void` | `setBasedir(java.io.File baseDir)` Base directory to look in for files to CAB.
    `void` | `setCabfile(java.io.File cabFile)` The name/location of where to create the .cab file.
    `void` | `setCompress(boolean compress)` If true, compress the files otherwise only store them.
    `void` | `setOptions(java.lang.String options)` Sets additional cabarc options that are not supported directly.
    `void` | `setVerbose(boolean verbose)` If true, display cabarc output.

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

- - ### Field Detail

    - #### archiveType

          protected java.lang.String archiveType

  - ### Constructor Detail

    - #### Cab

          public Cab()

  - ### Method Detail

    - #### setCabfile

          public void setCabfile(java.io.File cabFile)

      The name/location of where to create the .cab file.
      Parameters:
        `cabFile` - the location of the cab file.

    - #### setBasedir

          public void setBasedir(java.io.File baseDir)

      Base directory to look in for files to CAB.
      Parameters:
        `baseDir` - base directory for files to cab.

    - #### setCompress

          public void setCompress(boolean compress)

      If true, compress the files otherwise only store them.
      Parameters:
        `compress` - a `boolean` value.

    - #### setVerbose

          public void setVerbose(boolean verbose)

      If true, display cabarc output.
      Parameters:
        `verbose` - a `boolean` value.

    - #### setOptions

          public void setOptions(java.lang.String options)

      Sets additional cabarc options that are not supported directly.
      Parameters:
        `options` - cabarc command line options.

    - #### addFileset

          public void addFileset(FileSet set)

      Adds a set of files to archive.
      Parameters:
        `set` - a set of files to archive.

    - #### checkConfiguration

          protected void checkConfiguration()
                                     throws BuildException

      Check if the attributes and nested elements are correct.
      Throws:
        `BuildException` - on error.

    - #### createExec

          protected ExecTask createExec()
                                 throws BuildException

      Create a new exec delegate. The delegate task is populated so that it appears in the logs to be the same task as this one.
      Returns:
        the delegate.
      Throws:
        `BuildException` - on error.

    - #### isUpToDate

          protected boolean isUpToDate(java.util.Vector files)

      Check to see if the target is up to date with respect to input files.
      Parameters:
        `files` - the list of files to check.
      Returns:
        true if the cab file is newer than its dependents.

    - #### createListFile

          protected java.io.File createListFile(java.util.Vector files)
                                         throws java.io.IOException

      Creates a list file. This temporary file contains a list of all files to be included in the cab, one file per line.

      This method expects to only be called on Windows and thus quotes the file names.

      Parameters:
        `files` - the list of files to use.
      Returns:
        the list file created.
      Throws:
        `java.io.IOException` - if there is an error.

    - #### appendFiles

          protected void appendFiles(java.util.Vector files,
                         DirectoryScanner ds)

      Append all files found by a directory scanner to a vector.
      Parameters:
        `files` - the vector to append the files to.
        `ds` - the scanner to get the files from.

    - #### getFileList

          protected java.util.Vector getFileList()
                                          throws BuildException

      Get the complete list of files to be included in the cab. Filenames are gathered from the fileset if it has been added, otherwise from the traditional include parameters.
      Returns:
        the list of files.
      Throws:
        `BuildException` - if there is an error.

    - #### execute

          public void execute()
                       throws BuildException

      execute this task.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - on error.