org.apache.tools.ant.taskdefs

## Class Touch

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

All Implemented Interfaces:
  java.lang.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
`static interface` `Touch.DateFormatFactory`

### Field Summary

Fields
`static Touch.DateFormatFactory` `DEFAULT_DF_FACTORY`

### 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
`Touch()` Construct a new `Touch` task.

### Method Summary

Methods
`void` `add(FileNameMapper fileNameMapper)` Add a `FileNameMapper`.
`void` `add(ResourceCollection rc)` Add a collection of resources to touch.
`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(java.lang.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(java.io.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(java.lang.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(java.io.File file)` Deprecated. since 1.6.x.

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

### Field Detail

#### DEFAULT_DF_FACTORY

    public static final Touch.DateFormatFactory DEFAULT_DF_FACTORY

### Constructor Detail

#### Touch

    public Touch()

Construct a new `Touch` task.

### Method Detail

#### setFile

    public void setFile(java.io.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(java.lang.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(java.lang.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

    protected void touch(java.io.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