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

# Class Touch

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

All Implemented Interfaces:
  `Cloneable`

public class Touch extends Task
Touch a file and/or fileset(s) and/or filelist(s); corresponds to the Unix touch command.

If the file to touch doesn't exist, an empty one is created.

Since:
  Ant 1.1

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `Touch.DateFormatFactory`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Touch.DateFormatFactory`
  `DEFAULT_DF_FACTORY`
  Provides access to DateUtils.EN_US_DATE_FORMAT_MIN (primary) and DateUtils.EN_US_DATE_FORMAT_SEC (fallback).

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(ResourceCollection rc)`
  Add a collection of resources to touch.
  `void`
  `add(FileNameMapper fileNameMapper)`
  Add a `FileNameMapper`.
  `void`
  `addConfiguredMapper(Mapper mapper)`
  Add a `Mapper`.
  `void`
  `addFilelist(FileList list)`
  Add a filelist to touch.
  `void`
  `addFileset(FileSet set)`
  Add a set of files to touch.
  `protected void`
  `checkConfiguration()`
  Check that this task has been configured properly.
  `void`
  `execute()`
  Execute the touch operation.
  `void`
  `setDatetime(String dateTime)`
  Set the new modification time of file(s) touched in the format "MM/DD/YYYY HH:MM AM or PM" or "MM/DD/YYYY HH:MM:SS AM or PM".
  `void`
  `setFile(File file)`
  Sets a single source file to touch.
  `void`
  `setMillis(long millis)`
  Set the new modification time of file(s) touched in milliseconds since midnight Jan 1 1970.
  `void`
  `setMkdirs(boolean mkdirs)`
  Set whether nonexistent parent directories should be created when touching new files.
  `void`
  `setPattern(String pattern)`
  Set the format of the datetime attribute.
  `void`
  `setVerbose(boolean verbose)`
  Set whether the touch task will report every file it creates; defaults to `true`.
  `protected void`
  `touch()`
  Does the actual work; assumes everything has been checked by now.
  `protected void`
  `touch(File file)`
  Deprecated.
  since 1.6.x.

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

- ## Field Details

  - ### DEFAULT_DF_FACTORY

    public static final Touch.DateFormatFactory DEFAULT_DF_FACTORY
    Provides access to DateUtils.EN_US_DATE_FORMAT_MIN (primary) and DateUtils.EN_US_DATE_FORMAT_SEC (fallback).

- ## Constructor Details

  - ### Touch

    public Touch()

- ## Method Details

  - ### setFile

    public void setFile(File file)
    Sets a single source file to touch. If the file does not exist an empty file will be created.
    Parameters:
      `file` - the `File` to touch.

  - ### setMillis

    public void setMillis(long millis)
    Set the new modification time of file(s) touched in milliseconds since midnight Jan 1 1970. Optional, default=now.
    Parameters:
      `millis` - the `long` timestamp to use.

  - ### setDatetime

    public void setDatetime(String dateTime)
    Set the new modification time of file(s) touched in the format "MM/DD/YYYY HH:MM AM or PM" or "MM/DD/YYYY HH:MM:SS AM or PM". Optional, default=now.
    Parameters:
      `dateTime` - the `String` date in the specified format.

  - ### setMkdirs

    public void setMkdirs(boolean mkdirs)
    Set whether nonexistent parent directories should be created when touching new files.
    Parameters:
      `mkdirs` - `boolean` whether to create parent directories.
    Since:
      Ant 1.6.3

  - ### setVerbose

    public void setVerbose(boolean verbose)
    Set whether the touch task will report every file it creates; defaults to `true`.
    Parameters:
      `verbose` - `boolean` flag.
    Since:
      Ant 1.6.3

  - ### setPattern

    public void setPattern(String pattern)
    Set the format of the datetime attribute.
    Parameters:
      `pattern` - the `SimpleDateFormat`-compatible format pattern.
    Since:
      Ant 1.6.3

  - ### addConfiguredMapper

    public void addConfiguredMapper(Mapper mapper)
    Add a `Mapper`.
    Parameters:
      `mapper` - the `Mapper` to add.
    Since:
      Ant 1.6.3

  - ### add

    public void add(FileNameMapper fileNameMapper) throws BuildException
    Add a `FileNameMapper`.
    Parameters:
      `fileNameMapper` - the `FileNameMapper` to add.
    Throws:
      `BuildException` - if multiple mappers are added.
    Since:
      Ant 1.6.3

  - ### addFileset

    public void addFileset(FileSet set)
    Add a set of files to touch.
    Parameters:
      `set` - the `Fileset` to add.

  - ### addFilelist

    public void addFilelist(FileList list)
    Add a filelist to touch.
    Parameters:
      `list` - the `Filelist` to add.

  - ### add

    public void add(ResourceCollection rc)
    Add a collection of resources to touch.
    Parameters:
      `rc` - the collection to add.
    Since:
      Ant 1.7

  - ### checkConfiguration

    protected void checkConfiguration() throws BuildException
    Check that this task has been configured properly.
    Throws:
      `BuildException` - if configuration errors are detected.
    Since:
      Ant 1.6.3

  - ### execute

    public void execute() throws BuildException
    Execute the touch operation.
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - if an error occurs.

  - ### touch

    protected void touch() throws BuildException
    Does the actual work; assumes everything has been checked by now.
    Throws:
      `BuildException` - if an error occurs.

  - ### touch

    @Deprecated protected void touch(File file)
    Deprecated.
    since 1.6.x.
    Touch a single file with the current timestamp (this.millis). This method does not interact with any nested mappers and remains for reasons of backwards-compatibility only.
    Parameters:
      `file` - file to touch
    Throws:
      `BuildException` - on error