org.objectweb.jonas.ant.jonasbase
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.objectweb.jonas.ant.jonasbase.Replace
All Implemented Interfaces:
org.apache.tools.ant.types.selectors.SelectorContainer
Direct Known Subclasses:
JReplace

public class Replace
extends org.apache.tools.ant.taskdefs.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
description, location, target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
project
 
Constructor Summary
Replace()
           
 
Method Summary
 Replace.Replacefilter createReplacefilter()
          Add a nested <replacefilter> element.
 Replace.NestedString createReplaceToken()
          the token to filter as the text of a nested element
 Replace.NestedString createReplaceValue()
          the 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)
          helper method to load a properties file and throw a build exception if it cannot be loaded
 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 filename)
          The name of a property file from which properties specified using nested <replacefilter> elements are drawn; Required only if property attribute of <replacefilter> is used.
 void setReplaceFilterFile(java.io.File filename)
          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
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Replace

public Replace()
Method Detail

execute

public void execute()
             throws org.apache.tools.ant.BuildException
Do the execution.

Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException - if we cant build

validateAttributes

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

Throws:
org.apache.tools.ant.BuildException - if any supplied attribute is invalid or any mandatory attribute is missing

validateReplacefilters

public void validateReplacefilters()
                            throws org.apache.tools.ant.BuildException
Validate nested elements.

Throws:
org.apache.tools.ant.BuildException - if any supplied attribute is invalid or any mandatory attribute is missing

getProperties

public java.util.Properties getProperties(java.io.File propertyFile)
                                   throws org.apache.tools.ant.BuildException
helper method to load a properties file and throw a build exception if it cannot be loaded

Parameters:
propertyFile - the file to load the properties from
Returns:
loaded properties collection
Throws:
org.apache.tools.ant.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 - true if you would like a summary logged of the replace operation

setReplaceFilterFile

public void setReplaceFilterFile(java.io.File filename)
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:
filename - 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 - base dir

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()
the token to filter as the text of a nested element

Returns:
nested token to configure

createReplaceValue

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

Returns:
replacement value to configure

setPropertyFile

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

Parameters:
filename - file to load

createReplacefilter

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

Returns:
a nested ReplaceFilter object to be configured