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:
  `Closeable`, `AutoCloseable`, `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(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
`final Reader`
`chain(Reader reader)`
Creates a new TokenFilter using the passed in Reader for instantiation.
`static int`
`convertRegexOptions(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 String`
`resolveBackSlash(String input)`
xml does not do "c" like interpretation of strings.
`void`
`setDelimOutput(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(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 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 `FilterReader`
Returns:
  the next character in the resulting stream, or -1 if the end of the resulting stream has been reached
Throws:
  `IOException` - if the underlying stream throws an IOException during reading

### chain

public final Reader chain(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(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 String resolveBackSlash(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(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