Package org.apache.tools.ant.filters

# Class TokenFilter

java.lang.Object
java.io.Reader
java.io.FilterReader
org.apache.tools.ant.filters.BaseFilterReader
org.apache.tools.ant.filters.TokenFilter

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

    public class TokenFilter
    extends BaseFilterReader
    implements ChainableReader

This splits up input into tokens and passes the tokens to a sequence of filters.

Since:
  Ant 1.6
See Also:
  `BaseFilterReader`, `ChainableReader`, `DynamicConfigurator`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type | Class | Description
  --- | --- | ---
  `static class` | `TokenFilter.ChainableReaderFilter` | Abstract class that converts derived filter classes into ChainableReaderFilter's
  `static class` | `TokenFilter.ContainsRegex` | filter to filter tokens matching regular expressions.
  `static class` | `TokenFilter.ContainsString` | Simple filter to filter lines contains strings
  `static class` | `TokenFilter.DeleteCharacters` | Filter to delete characters
  `static class` | `TokenFilter.FileTokenizer` | class to read the complete input into a string
  `static interface` | `TokenFilter.Filter` | string filters implement this interface
  `static class` | `TokenFilter.IgnoreBlank` | Filter remove empty tokens
  `static class` | `TokenFilter.ReplaceRegex` | filter to replace regex.
  `static class` | `TokenFilter.ReplaceString` | Simple replace string filter.
  `static class` | `TokenFilter.StringTokenizer` | class to tokenize the input as areas separated by white space, or by a specified list of delim characters.
  `static class` | `TokenFilter.Trim` | Filter to trim white space

- ## Field Summary

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

  `in`

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

  `lock`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `TokenFilter()` | Constructor for "dummy" instances.
  `TokenFilter​(java.io.Reader in)` | Creates a new filtered reader.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `add​(TokenFilter.Filter filter)` | Add an arbitrary filter
  `void` | `add​(Tokenizer tokenizer)` | add an arbitrary tokenizer
  `void` | `addContainsRegex​(TokenFilter.ContainsRegex filter)` | contains regex filter
  `void` | `addContainsString​(TokenFilter.ContainsString filter)` | contains string filter
  `void` | `addDeleteCharacters​(TokenFilter.DeleteCharacters filter)` | delete chars
  `void` | `addFileTokenizer​(TokenFilter.FileTokenizer tokenizer)` | add a file tokenizer
  `void` | `addIgnoreBlank​(TokenFilter.IgnoreBlank filter)` | ignore blank filter
  `void` | `addLineTokenizer​(LineTokenizer tokenizer)` | add a line tokenizer - this is the default.
  `void` | `addReplaceRegex​(TokenFilter.ReplaceRegex filter)` | replace regex filter
  `void` | `addReplaceString​(TokenFilter.ReplaceString filter)` | replace string filter
  `void` | `addStringTokenizer​(TokenFilter.StringTokenizer tokenizer)` | add a string tokenizer
  `void` | `addTrim​(TokenFilter.Trim filter)` | trim filter
  `java.io.Reader` | `chain​(java.io.Reader reader)` | Creates a new TokenFilter using the passed in Reader for instantiation.
  `static int` | `convertRegexOptions​(java.lang.String flags)` | convert regex option flag characters to regex options g - Regexp.REPLACE_ALL i - Regexp.MATCH_CASE_INSENSITIVE m - Regexp.MATCH_MULTILINE s - Regexp.MATCH_SINGLELINE
  `int` | `read()` | Returns the next character in the filtered stream, only including lines from the original stream which match all of the specified regular expressions.
  `static java.lang.String` | `resolveBackSlash​(java.lang.String input)` | xml does not do "c" like interpretation of strings.
  `void` | `setDelimOutput​(java.lang.String delimOutput)` | set the output delimiter.

  ### 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

  `nullReader, read, read, transferTo`

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

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

- ## Constructor Details

  - ### TokenFilter

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

  - ### TokenFilter

    public TokenFilter​(java.io.Reader in)
    Creates a new filtered reader.
    Parameters:
      `in` - A Reader object providing the underlying stream. Must not be `null`.

- ## Method Details

  - ### read

    public int read() throws java.io.IOException
    Returns the next character in the filtered stream, only including lines from the original stream which match all of the specified regular expressions.
    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

  - ### chain

    public final java.io.Reader chain​(java.io.Reader reader)
    Creates a new TokenFilter using the passed in Reader for instantiation.
    Specified by:
      `chain` in interface `ChainableReader`
    Parameters:
      `reader` - A Reader object providing the underlying stream.
    Returns:
      a new filter based on this configuration

  - ### setDelimOutput

    public void setDelimOutput​(java.lang.String delimOutput)
    set the output delimiter.
    Parameters:
      `delimOutput` - replaces the delim string returned by the tokenizer, if present.

  - ### addLineTokenizer

    public void addLineTokenizer​(LineTokenizer tokenizer)
    add a line tokenizer - this is the default.
    Parameters:
      `tokenizer` - the line tokenizer

  - ### addStringTokenizer

    public void addStringTokenizer​(TokenFilter.StringTokenizer tokenizer)
    add a string tokenizer
    Parameters:
      `tokenizer` - the string tokenizer

  - ### addFileTokenizer

    public void addFileTokenizer​(TokenFilter.FileTokenizer tokenizer)
    add a file tokenizer
    Parameters:
      `tokenizer` - the file tokenizer

  - ### add

    public void add​(Tokenizer tokenizer)
    add an arbitrary tokenizer
    Parameters:
      `tokenizer` - the tokenizer to all, only one allowed

  - ### addReplaceString

    public void addReplaceString​(TokenFilter.ReplaceString filter)
    replace string filter
    Parameters:
      `filter` - the replace string filter

  - ### addContainsString

    public void addContainsString​(TokenFilter.ContainsString filter)
    contains string filter
    Parameters:
      `filter` - the contains string filter

  - ### addReplaceRegex

    public void addReplaceRegex​(TokenFilter.ReplaceRegex filter)
    replace regex filter
    Parameters:
      `filter` - the replace regex filter

  - ### addContainsRegex

    public void addContainsRegex​(TokenFilter.ContainsRegex filter)
    contains regex filter
    Parameters:
      `filter` - the contains regex filter

  - ### addTrim

    public void addTrim​(TokenFilter.Trim filter)
    trim filter
    Parameters:
      `filter` - the trim filter

  - ### addIgnoreBlank

    public void addIgnoreBlank​(TokenFilter.IgnoreBlank filter)
    ignore blank filter
    Parameters:
      `filter` - the ignore blank filter

  - ### addDeleteCharacters

    public void addDeleteCharacters​(TokenFilter.DeleteCharacters filter)
    delete chars
    Parameters:
      `filter` - the delete characters filter

  - ### add

    public void add​(TokenFilter.Filter filter)
    Add an arbitrary filter
    Parameters:
      `filter` - the filter to add

  - ### resolveBackSlash

    public static java.lang.String resolveBackSlash​(java.lang.String input)
    xml does not do "c" like interpretation of strings. i.e. \n\r\t etc. this method processes \n, \r, \t, \f, \\ also subs \s with " \n\r\t\f" a trailing '\' will be ignored
    Parameters:
      `input` - raw string with possible embedded '\'s
    Returns:
      converted string

  - ### convertRegexOptions

    public static int convertRegexOptions​(java.lang.String flags)
    convert regex option flag characters to regex options
    - g - Regexp.REPLACE_ALL
    - i - Regexp.MATCH_CASE_INSENSITIVE
    - m - Regexp.MATCH_MULTILINE
    - s - Regexp.MATCH_SINGLELINE
    Parameters:
      `flags` - the string containing the flags
    Returns:
      the Regexp option bits