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
    Modifier and Type | Method and Description
    --- | ---
    `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