org.apache.tools.ant.taskdefs
Class Replace

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.MatchingTask
              extended by org.apache.tools.ant.taskdefs.Replace
All Implemented Interfaces:
java.lang.Cloneable, SelectorContainer

public class Replace
extends MatchingTask

Replaces all occurrences of one or more string tokens with given values in the indicated files. Each value can be either a string or the value of a property available in a designated property file. If you want to replace a text that crosses line boundaries, you must use a nested <replacetoken> element.

Since:
Ant 1.1

Nested Class Summary
 class Replace.NestedString
          An inline string to use as the replacement text.
 class Replace.Replacefilter
          A filter to apply.
 
Field Summary
 
Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask
fileset
 
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
Replace()
           
 
Method Summary
 Replace.Replacefilter createReplacefilter()
          Add a nested <replacefilter> element.
 Replace.NestedString createReplaceToken()
          Create a token to filter as the text of a nested element.
 Replace.NestedString createReplaceValue()
          Create a string to replace the token as the text of a nested element.
 void execute()
          Do the execution.
 java.util.Properties getProperties(java.io.File propertyFile)
          Load a properties file.
 void setDir(java.io.File dir)
          The base directory to use when replacing a token in multiple files; required if file is not defined.
 void setEncoding(java.lang.String encoding)
          Set the file encoding to use on the files read and written by the task; optional, defaults to default JVM encoding.
 void setFile(java.io.File file)
          Set the source file; required unless dir is set.
 void setPropertyFile(java.io.File propertyFile)
          The name of a property file from which properties specified using nested <replacefilter> elements are drawn; required only if the property attribute of <replacefilter> is used.
 void setReplaceFilterFile(java.io.File replaceFilterFile)
          Sets the name of a property file containing filters; optional.
 void setSummary(boolean summary)
          Indicates whether a summary of the replace operation should be produced, detailing how many token occurrences and files were processed; optional, default=false.
 void setToken(java.lang.String token)
          Set the string token to replace; required unless a nested replacetoken element or the replacefilterfile attribute is used.
 void setValue(java.lang.String value)
          Set the string value to use as token replacement; optional, default is the empty string "".
 void validateAttributes()
          Validate attributes provided for this task in .xml build file.
 void validateReplacefilters()
          Validate nested elements.
 
Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems
 
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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Replace

public Replace()
Method Detail

execute

public void execute()
             throws BuildException
Do the execution.

Overrides:
execute in class Task
Throws:
BuildException - if we cant build

validateAttributes

public void validateAttributes()
                        throws BuildException
Validate attributes provided for this task in .xml build file.

Throws:
BuildException - if any supplied attribute is invalid or any mandatory attribute is missing.

validateReplacefilters

public void validateReplacefilters()
                            throws BuildException
Validate nested elements.

Throws:
BuildException - if any supplied attribute is invalid or any mandatory attribute is missing.

getProperties

public java.util.Properties getProperties(java.io.File propertyFile)
                                   throws BuildException
Load a properties file.

Parameters:
propertyFile - the file to load the properties from.
Returns:
loaded Properties object.
Throws:
BuildException - if the file could not be found or read.

setFile

public void setFile(java.io.File file)
Set the source file; required unless dir is set.

Parameters:
file - source File.

setSummary

public void setSummary(boolean summary)
Indicates whether a summary of the replace operation should be produced, detailing how many token occurrences and files were processed; optional, default=false.

Parameters:
summary - boolean whether a summary of the replace operation should be logged.

setReplaceFilterFile

public void setReplaceFilterFile(java.io.File replaceFilterFile)
Sets the name of a property file containing filters; optional. Each property will be treated as a replacefilter where token is the name of the property and value is the value of the property.

Parameters:
replaceFilterFile - File to load.

setDir

public void setDir(java.io.File dir)
The base directory to use when replacing a token in multiple files; required if file is not defined.

Parameters:
dir - File representing the base directory.

setToken

public void setToken(java.lang.String token)
Set the string token to replace; required unless a nested replacetoken element or the replacefilterfile attribute is used.

Parameters:
token - token String.

setValue

public void setValue(java.lang.String value)
Set the string value to use as token replacement; optional, default is the empty string "".

Parameters:
value - replacement value.

setEncoding

public void setEncoding(java.lang.String encoding)
Set the file encoding to use on the files read and written by the task; optional, defaults to default JVM encoding.

Parameters:
encoding - the encoding to use on the files.

createReplaceToken

public Replace.NestedString createReplaceToken()
Create a token to filter as the text of a nested element.

Returns:
nested token NestedString to configure.

createReplaceValue

public Replace.NestedString createReplaceValue()
Create a string to replace the token as the text of a nested element.

Returns:
replacement value NestedString to configure.

setPropertyFile

public void setPropertyFile(java.io.File propertyFile)
The name of a property file from which properties specified using nested <replacefilter> elements are drawn; required only if the property attribute of <replacefilter> is used.

Parameters:
propertyFile - File to load.

createReplacefilter

public Replace.Replacefilter createReplacefilter()
Add a nested <replacefilter> element.

Returns:
a nested Replacefilter object to be configured.