org.apache.tools.ant.taskdefs

## Class Patch

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.Patch

All Implemented Interfaces:
  java.lang.Cloneable

    public class Patch
    extends Task

Patches a file by applying a 'diff' file to it; requires "patch" to be on the execution path.

Since:
  Ant 1.1

### Field Summary

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

### Method Summary

Methods
`void` `execute()` execute patch
`void` `setBackups(boolean backups)` flag to create backups; optional, default=false
`void` `setDestfile(java.io.File file)` The name of a file to send the output to, instead of patching the file(s) in place; optional.
`void` `setDir(java.io.File directory)` The directory to run the patch command in, defaults to the project's base directory.
`void` `setFailOnError(boolean value)` If `true`, stop the build process if the patch command exits with an error status.
`void` `setIgnorewhitespace(boolean ignore)` flag to ignore whitespace differences; default=false
`void` `setOriginalfile(java.io.File file)` The file to patch; optional if it can be inferred from the diff file
`void` `setPatchfile(java.io.File file)` The file containing the diff output; required.
`void` `setQuiet(boolean q)` Work silently unless an error occurs; optional, default=false
`void` `setReverse(boolean r)` Assume patch was created with old and new files swapped; optional, default=false
`void` `setStrip(int num)` Strip the smallest prefix containing num leading slashes from filenames.

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

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Patch

    public Patch()

### Method Detail

#### setOriginalfile

    public void setOriginalfile(java.io.File file)

The file to patch; optional if it can be inferred from the diff file

Parameters:
  `file` - the file to patch

#### setDestfile

    public void setDestfile(java.io.File file)

The name of a file to send the output to, instead of patching the file(s) in place; optional.

Parameters:
  `file` - the file to send the output to
Since:
  Ant 1.6

#### setPatchfile

    public void setPatchfile(java.io.File file)

The file containing the diff output; required.

Parameters:
  `file` - the file containing the diff output

#### setBackups

    public void setBackups(boolean backups)

flag to create backups; optional, default=false

Parameters:
  `backups` - if true create backups

#### setIgnorewhitespace

    public void setIgnorewhitespace(boolean ignore)

flag to ignore whitespace differences; default=false

Parameters:
  `ignore` - if true ignore whitespace differences

#### setStrip

    public void setStrip(int num)
                  throws BuildException

Strip the smallest prefix containing num leading slashes from filenames.

patch's -p option.

Parameters:
  `num` - number of lines to strip
Throws:
  `BuildException` - if num is < 0, or other errors

#### setQuiet

    public void setQuiet(boolean q)

Work silently unless an error occurs; optional, default=false

Parameters:
  `q` - if true suppress set the -s option on the patch command

#### setReverse

    public void setReverse(boolean r)

Assume patch was created with old and new files swapped; optional, default=false

Parameters:
  `r` - if true set the -R option on the patch command

#### setDir

    public void setDir(java.io.File directory)

The directory to run the patch command in, defaults to the project's base directory.

Parameters:
  `directory` - the directory to run the patch command in
Since:
  Ant 1.5

#### setFailOnError

    public void setFailOnError(boolean value)

If `true`, stop the build process if the patch command exits with an error status.

Parameters:
  `value` - `true` if it should halt, otherwise `false`. The default is `false`.
Since:
  Ant 1.8.0

#### execute

    public void execute()
                 throws BuildException

execute patch

Overrides:
  `execute` in class `Task`
Throws:
  `BuildException` - when it all goes a bit pear shaped