org.apache.tools.ant.filters

## Class ReplaceTokens

- java.lang.Object
- - java.io.Reader
  - - java.io.FilterReader
    - - org.apache.tools.ant.filters.BaseFilterReader
      - - org.apache.tools.ant.filters.BaseParamFilterReader
        - - org.apache.tools.ant.filters.ReplaceTokens

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Readable, ChainableReader, Parameterizable

      public final class ReplaceTokens
      extends BaseParamFilterReader
      implements ChainableReader

  Replaces tokens in the original input with user-supplied values. Example:

      <replacetokens begintoken="#" endtoken="#">
         <token key="DATE" value="${TODAY}"/>
       </replacetokens>

  Or:

      <filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
         <param type="tokenchar" name="begintoken" value="#"/>
         <param type="tokenchar" name="endtoken" value="#"/>
         <param type="token" name="DATE" value="${TODAY}"/>
       </filterreader>

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ReplaceTokens.Token` Holds a token

  - ### Field Summary

    - ### Fields inherited from class java.io.FilterReader

      `in`

    - ### Fields inherited from class java.io.Reader

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReplaceTokens()` Constructor for "dummy" instances.
    `ReplaceTokens(java.io.Reader in)` Creates a new filtered reader.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfiguredToken(ReplaceTokens.Token token)` Adds a token element to the map of tokens to replace.
    `java.io.Reader` | `chain(java.io.Reader rdr)` Creates a new ReplaceTokens using the passed in Reader for instantiation.
    `int` | `read()` Returns the next character in the filtered stream, replacing tokens from the original stream.
    `void` | `setBeginToken(java.lang.String beginToken)` Sets the "begin token" character.
    `void` | `setEndToken(java.lang.String endToken)` Sets the "end token" character.
    `void` | `setPropertiesResource(Resource r)` A resource containing properties, each of which is interpreted as a token/value pair.

    - ### Methods inherited from class org.apache.tools.ant.filters.BaseParamFilterReader

      `getParameters, setParameters`

    - ### Methods inherited from class org.apache.tools.ant.filters.BaseFilterReader

      `getInitialized, getProject, read, readFully, readLine, setInitialized, setProject, skip`

    - ### Methods inherited from class java.io.FilterReader

      `close, mark, markSupported, ready, reset`

    - ### Methods inherited from class java.io.Reader

      `read, read`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ReplaceTokens

          public ReplaceTokens()

      Constructor for "dummy" instances.
      See Also:
        `BaseFilterReader.BaseFilterReader()`

    - #### ReplaceTokens

          public ReplaceTokens(java.io.Reader in)

      Creates a new filtered reader.
      Parameters:
        `in` - A Reader object providing the underlying stream. Must not be `null`.

  - ### Method Detail

    - #### read

          public int read()
                   throws java.io.IOException

      Returns the next character in the filtered stream, replacing tokens from the original stream.
      Overrides:
        `read` in class `java.io.FilterReader`
      Returns:
        the next character in the resulting stream, or -1 if the end of the resulting stream has been reached
      Throws:
        `java.io.IOException` - if the underlying stream throws an IOException during reading

    - #### setBeginToken

          public void setBeginToken(java.lang.String beginToken)

      Sets the "begin token" character.
      Parameters:
        `beginToken` - the character used to denote the beginning of a token

    - #### setEndToken

          public void setEndToken(java.lang.String endToken)

      Sets the "end token" character.
      Parameters:
        `endToken` - the character used to denote the end of a token

    - #### setPropertiesResource

          public void setPropertiesResource(Resource r)

      A resource containing properties, each of which is interpreted as a token/value pair.
      Since:
        Ant 1.8.0

    - #### addConfiguredToken

          public void addConfiguredToken(ReplaceTokens.Token token)

      Adds a token element to the map of tokens to replace.
      Parameters:
        `token` - The token to add to the map of replacements. Must not be `null`.

    - #### chain

          public java.io.Reader chain(java.io.Reader rdr)

      Creates a new ReplaceTokens using the passed in Reader for instantiation.
      Specified by:
        `chain` in interface `ChainableReader`
      Parameters:
        `rdr` - A Reader object providing the underlying stream. Must not be `null`.
      Returns:
        a new filter based on this configuration, but filtering the specified reader