Class MultiDelimiterInterpolatorFilterReaderLineEnding

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Readable

    public class MultiDelimiterInterpolatorFilterReaderLineEnding
    extends AbstractFilterReaderLineEnding
    A FilterReader implementation, that works with Interpolator interface instead of it's own interpolation implementation. This implementation is heavily based on org.codehaus.plexus.util.InterpolationFilterReader.
    Since:
    1.0
    • Field Detail

      • interpolator

        private org.codehaus.plexus.interpolation.Interpolator interpolator
        Interpolator used to interpolate
      • recursionInterceptor

        private org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor
      • replaceData

        private java.lang.String replaceData
        replacement text from a token
      • replaceIndex

        private int replaceIndex
        Index into replacement data
      • DEFAULT_BEGIN_TOKEN

        public static final java.lang.String DEFAULT_BEGIN_TOKEN
        Default begin token.
        See Also:
        Constant Field Values
      • DEFAULT_END_TOKEN

        public static final java.lang.String DEFAULT_END_TOKEN
        Default end token.
        See Also:
        Constant Field Values
      • interpolateWithPrefixPattern

        private boolean interpolateWithPrefixPattern
        true by default to preserve backward comp
      • beginToken

        private java.lang.String beginToken
      • endToken

        private java.lang.String endToken
      • supportMultiLineFiltering

        private boolean supportMultiLineFiltering
      • eof

        private boolean eof
    • Constructor Detail

      • MultiDelimiterInterpolatorFilterReaderLineEnding

        public MultiDelimiterInterpolatorFilterReaderLineEnding​(java.io.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​(java.io.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​(java.lang.String delimiterSpec)
        Parameters:
        delimiterSpec - delimiter spec.
        Returns:
        true/false.
      • skip

        public long skip​(long n)
                  throws java.io.IOException,
                         java.lang.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 java.io.FilterReader
        Parameters:
        n - The number of characters to skip
        Returns:
        the number of characters actually skipped
        Throws:
        java.lang.IllegalArgumentException - If n is negative.
        java.io.IOException - If an I/O error occurs
      • read

        public int read​(char[] cbuf,
                        int off,
                        int len)
                 throws java.io.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 java.io.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:
        java.io.IOException - If an I/O error occurs
      • read

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