Class LineContains

All Implemented Interfaces:
Closeable, AutoCloseable, Readable, ChainableReader, Parameterizable

public final class LineContains extends BaseParamFilterReader implements ChainableReader
Filter which includes only those lines that contain the user-specified strings. Example:
<linecontains>
   <contains value="foo">
   <contains value="bar">
 </linecontains>
Or:
<filterreader classname="org.apache.tools.ant.filters.LineContains">
    <param type="contains" value="foo"/>
    <param type="contains" value="bar"/>
 </filterreader>
This will include only those lines that contain foo and bar. Starting Ant 1.10.4, the matchAny attribute can be used to control whether any one of the user-specified strings is expected to be contained in the line or all of them are expected to be contained. For example:
<linecontains matchAny="true">
  *   <contains value="foo">
  *   <contains value="bar">
  * </linecontains>
This will include only those lines that contain either foo or bar.
  • Constructor Details

    • LineContains

      public LineContains()
      Constructor for "dummy" instances.
      See Also:
    • LineContains

      public LineContains(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 contain all of the specified words.
      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
    • addConfiguredContains

      public void addConfiguredContains(LineContains.Contains contains)
      Adds a contains element.
      Parameters:
      contains - The contains element to add. Must not be null.
    • setNegate

      public void setNegate(boolean b)
      Set the negation mode. Default false (no negation).
      Parameters:
      b - the boolean negation mode to set.
    • isNegated

      public boolean isNegated()
      Find out whether we have been negated.
      Returns:
      boolean negation flag.
    • setMatchAny

      public void setMatchAny(boolean matchAny)
      Parameters:
      matchAny - True if this LineContains is considered a match, if any of the contains value match. False if all of the contains value are expected to match
      Since:
      Ant 1.10.4
    • isMatchAny

      public boolean isMatchAny()
      Returns:
      Returns true if this LineContains is considered a match, if any of the contains value match. False if all of the contains value are expected to match
      Since:
      Ant 1.10.4
    • chain

      public Reader chain(Reader rdr)
      Creates a new LineContains 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