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

All Methods Instance Methods Concrete Methods
`void` `addFileset(FileSet fileset)` Adds a set of files to archive.
`protected void` `appendFiles(java.util.Vector<java.lang.String> 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<java.lang.String> files)` Creates a list file.
`void` `execute()` execute this task.
`protected java.util.Vector<java.lang.String>` `getFileList()` Get the complete list of files to be included in the cab.
`protected boolean` `isUpToDate(java.util.Vector<java.lang.String> 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 fileset)

Adds a set of files to archive.

Parameters:
  `fileset` - 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<java.lang.String> 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<java.lang.String> 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<java.lang.String> 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<java.lang.String> 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.