Class LineContains

java.lang.Object
java.io.Reader
java.io.FilterReader
All Implemented Interfaces:
java.io.Closeable, java.lang.AutoCloseable, java.lang.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.
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  LineContains.Contains
    Holds a contains element
  • Field Summary

    Fields inherited from class java.io.FilterReader

    in

    Fields inherited from class java.io.Reader

    lock
  • Constructor Summary

    Constructors 
    Constructor Description
    LineContains()
    Constructor for "dummy" instances.
    LineContains​(java.io.Reader in)
    Creates a new filtered reader.
  • Method Summary

    Modifier and Type Method Description
    void addConfiguredContains​(LineContains.Contains contains)
    Adds a contains element.
    java.io.Reader chain​(java.io.Reader rdr)
    Creates a new LineContains using the passed in Reader for instantiation.
    boolean isMatchAny()  
    boolean isNegated()
    Find out whether we have been negated.
    int read()
    Returns the next character in the filtered stream, only including lines from the original stream which contain all of the specified words.
    void setMatchAny​(boolean matchAny)  
    void setNegate​(boolean b)
    Set the negation mode.

    Methods inherited from class org.apache.tools.ant.filters.BaseParamFilterReader

    getParameters, setParameters

    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

    • LineContains

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

      public LineContains​(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 contain all of the specified words.
      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
    • 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 java.io.Reader chain​(java.io.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