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