org.apache.tools.ant.filters
Class TokenFilter

java.lang.Object
  extended by java.io.Reader
      extended by java.io.FilterReader
          extended by org.apache.tools.ant.filters.BaseFilterReader
              extended by org.apache.tools.ant.filters.TokenFilter
All Implemented Interfaces:
java.io.Closeable, 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
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
TokenFilter()
          Constructor for "dummy" instances.
TokenFilter(java.io.Reader in)
          Creates a new filtered reader.
 
Method Summary
 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
read, read
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TokenFilter

public TokenFilter()
Constructor for "dummy" instances.

See Also:
BaseFilterReader.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 Detail

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 -> " \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