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

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.optional.PropertyFile
All Implemented Interfaces:
java.lang.Cloneable

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: Other parameters are: The <entry> task must have: Other parameters are: If type is unspecified, it defaults to string. Parameter values:

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
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
PropertyFile()
           
 
Method Summary
 PropertyFile.Entry createEntry()
          The entry nested element.
 void execute()
          Execute the task.
 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.
 void setJDKProperties(boolean val)
          optional flag to use original Java properties (as opposed to layout preserving properties)
 
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

PropertyFile

public PropertyFile()
Method Detail

execute

public void execute()
             throws BuildException
Execute the task.

Overrides:
execute in class Task
Throws:
BuildException - on error.

createEntry

public PropertyFile.Entry createEntry()
The entry nested element.

Returns:
an entry nested element to be configured.

setFile

public void setFile(java.io.File file)
Location of the property file to be edited; required.

Parameters:
file - the property file.

setComment

public void setComment(java.lang.String hdr)
optional header comment for the file

Parameters:
hdr - the string to use for the comment.

setJDKProperties

public void setJDKProperties(boolean val)
optional flag to use original Java properties (as opposed to layout preserving properties)