Package 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:
  `Cloneable`, `SelectorContainer`

public class Cab extends MatchingTask
Create a CAB archive.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected 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
Description
`Cab()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addFileset(FileSet fileset)`
Adds a set of files to archive.
`protected void`
`appendFiles(Vector<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 File`
`createListFile(Vector<String> files)`
Creates a list file.
`void`
`execute()`
execute this task.
`protected Vector<String>`
`getFileList()`
Get the complete list of files to be included in the cab.
`protected boolean`
`isUpToDate(Vector<String> files)`
Check to see if the target is up to date with respect to input files.
`void`
`setBasedir(File baseDir)`
Base directory to look in for files to CAB.
`void`
`setCabfile(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(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 Details

### archiveType

protected String archiveType

## Constructor Details

### Cab

public Cab()

## Method Details

### setCabfile

public void setCabfile(File cabFile)
The name/location of where to create the .cab file.

Parameters:
  `cabFile` - the location of the cab file.

### setBasedir

public void setBasedir(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(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(Vector<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 File createListFile(Vector<String> files) throws 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:
  `IOException` - if there is an error.

### appendFiles

protected void appendFiles(Vector<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 Vector<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.