Patch (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs, class: Patch

# Class Patch

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

All Implemented Interfaces:
  `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 Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Patch()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `execute()`
  execute patch
  `void`
  `setBackups(boolean backups)`
  flag to create backups; optional, default=false
  `void`
  `setDestfile(File file)`
  The name of a file to send the output to, instead of patching the file(s) in place; optional.
  `void`
  `setDir(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(File file)`
  The file to patch; optional if it can be inferred from the diff file
  `void`
  `setPatchfile(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 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`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### Patch

    public Patch()

- ## Method Details

  - ### setOriginalfile

    public void setOriginalfile(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(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(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(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