## org.apache.tools.ant.taskdefs.optional
Class PropertyFile

    java.lang.Object
      |
      +--org.apache.tools.ant.ProjectComponent
            |
            +--org.apache.tools.ant.Task
                  |
                  +--org.apache.tools.ant.taskdefs.optional.PropertyFile

public class PropertyFile
extends Task

Modifies settings in a property file.

The following is an example of its usage:

<target name="setState">

<property

name="header"
value="##Generated file - do not modify!"/>
<propertyfile file="apropfile.properties" comment="${header}">
<entry key="product.version.major" type="int" value="5"/>
<entry key="product.version.minor" type="int" value="0"/>
<entry key="product.build.major" type="int" value="0" />
<entry key="product.build.minor" type="int" operation="+" />
<entry key="product.build.date" type="date" value="now" />
<entry key="intSet" type="int" operation="=" value="681"/>
<entry key="intDec" type="int" operation="-"/>
<entry key="StringEquals" type="string" value="testValue"/>
</propertyfile>

</target>

The <propertyfile> task must have:

- file

Other parameters are:

- comment, key, operation, type and value (the final four being eliminated shortly)

The <entry> task must have:

- key

Other parameters are:

- operation
- type
- value
- default
- unit

If type is unspecified, it defaults to string Parameter values:

- operation:

- "=" (set -- default)
- "-" (dec)
- "+" (inc)
- type:

- "int"
- "date"
- "string"

- value:

- holds the default value, if the property was not found in property file
- "now" In case of type "date", the value "now" will be replaced by the current date/time and used even if a valid date was found in the property file.

String property types can only use the "=" operation. Int property types can only use the "=", "-" or "+" operations.

The message property is used for the property file header, with "\\" being a newline delimiter character.

Nested Class Summary
`static class` `PropertyFile.Entry` Instance of this class represents nested elements of a task propertyfile.
`static class` `PropertyFile.Unit` Borrowed from Tstamp

Field Summary

Fields inherited from class org.apache.tools.ant.Task
`description, location, target, taskName, taskType, wrapper`

Fields inherited from class org.apache.tools.ant.ProjectComponent
`project`

Constructor Summary
`PropertyFile()`

Method Summary
`PropertyFile.Entry` `createEntry()`
`void` `execute()` Called by the project to let the task do its work.
`void` `setComment(java.lang.String hdr)` optional header comment for the file
`void` `setFile(java.io.File file)` Location of the property file to be edited; required.

Methods inherited from class org.apache.tools.ant.Task
`getDescription, getLocation, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, maybeConfigure, perform, reconfigure, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

Methods inherited from class org.apache.tools.ant.ProjectComponent
`getProject, setProject`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PropertyFile

    public PropertyFile()

Method Detail

### execute

    public void execute()
                 throws BuildException

  Description copied from class: `Task`
  Called by the project to let the task do its work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running "ant target1 target2" will run all tasks in target3 twice.

  Overrides:
    `execute` in class `Task`
  Throws:
    `BuildException` - if something goes wrong with the build

### createEntry

    public PropertyFile.Entry createEntry()

### setFile

    public void setFile(java.io.File file)

  Location of the property file to be edited; required.

### setComment

    public void setComment(java.lang.String hdr)

  optional header comment for the file

Copyright © 2000-2004 Apache Software Foundation. All Rights Reserved.