Class MultiDelimiterInterpolatorFilterReaderLineEnding

  • All Implemented Interfaces:
    Closeable, AutoCloseable, Readable

    public class MultiDelimiterInterpolatorFilterReaderLineEnding
    extends AbstractFilterReaderLineEnding
    A FilterReader implementation, that works with Interpolator interface instead of its own interpolation implementation. This implementation is heavily based on org.codehaus.plexus.util.InterpolationFilterReader.
    Since:
    1.0
    Author:
    cstamas, Olivier Lamy
    • Constructor Detail

      • MultiDelimiterInterpolatorFilterReaderLineEnding

        public MultiDelimiterInterpolatorFilterReaderLineEnding​(Reader in,
                                                                org.codehaus.plexus.interpolation.Interpolator interpolator,
                                                                boolean supportMultiLineFiltering)
        This constructor uses default begin token ${ and default end token }.
        Parameters:
        in - reader to use
        interpolator - interpolator instance to use
        supportMultiLineFiltering - If multi line filtering is allowed
      • MultiDelimiterInterpolatorFilterReaderLineEnding

        public MultiDelimiterInterpolatorFilterReaderLineEnding​(Reader in,
                                                                org.codehaus.plexus.interpolation.Interpolator interpolator,
                                                                org.codehaus.plexus.interpolation.RecursionInterceptor ri,
                                                                boolean supportMultiLineFiltering)
        Parameters:
        in - reader to use
        interpolator - interpolator instance to use
        ri - The RecursionInterceptor to use to prevent recursive expressions.
        supportMultiLineFiltering - If multi line filtering is allowed
    • Method Detail

      • removeDelimiterSpec

        public boolean removeDelimiterSpec​(String delimiterSpec)
        Parameters:
        delimiterSpec - delimiter spec.
        Returns:
        true/false.
      • skip

        public long skip​(long n)
                  throws IOException,
                         IllegalArgumentException
        Skips characters. This method will block until some characters are available, an I/O error occurs, or the end of the stream is reached.
        Overrides:
        skip in class FilterReader
        Parameters:
        n - The number of characters to skip
        Returns:
        the number of characters actually skipped
        Throws:
        IllegalArgumentException - If n is negative.
        IOException - If an I/O error occurs
      • read

        public int read​(char[] cbuf,
                        int off,
                        int len)
                 throws IOException
        Reads characters into a portion of an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.
        Overrides:
        read in class FilterReader
        Parameters:
        cbuf - Destination buffer to write characters to. Must not be null.
        off - Offset at which to start storing characters.
        len - Maximum number of characters to read.
        Returns:
        the number of characters read, or -1 if the end of the stream has been reached
        Throws:
        IOException - If an I/O error occurs
      • read

        public int read()
                 throws IOException
        Returns the next character in the filtered stream, replacing tokens from the original stream.
        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
      • isInterpolateWithPrefixPattern

        public boolean isInterpolateWithPrefixPattern()
        Returns:
        interpolate with prefix pattern true (active) false otherwise.
      • setInterpolateWithPrefixPattern

        public void setInterpolateWithPrefixPattern​(boolean interpolateWithPrefixPattern)
        Parameters:
        interpolateWithPrefixPattern - set the interpolate with prefix pattern.
      • getRecursionInterceptor

        public org.codehaus.plexus.interpolation.RecursionInterceptor getRecursionInterceptor()
        Returns:
        RecursionInterceptor
      • setRecursionInterceptor

        public AbstractFilterReaderLineEnding setRecursionInterceptor​(org.codehaus.plexus.interpolation.RecursionInterceptor givenRecursionInterceptor)
        Parameters:
        givenRecursionInterceptor - RecursionInterceptor
        Returns:
        this