Class InterpolatorFilterReader

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

    public class InterpolatorFilterReader
    extends java.io.FilterReader
    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.
    • Field Detail

      • interpolator

        private Interpolator interpolator
        Interpolator used to interpolate
      • replaceData

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

        private int replaceIndex
        Index into replacement data
      • previousIndex

        private int previousIndex
        Index into previous 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
      • beginToken

        private java.lang.String beginToken
      • orginalBeginToken

        private java.lang.String orginalBeginToken
      • endToken

        private java.lang.String endToken
      • interpolateWithPrefixPattern

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

        private java.lang.String escapeString
      • useEscape

        private boolean useEscape
      • preserveEscapeString

        private boolean preserveEscapeString
        if true escapeString will be preserved \{foo} -> \{foo}
    • Constructor Detail

      • InterpolatorFilterReader

        public InterpolatorFilterReader​(java.io.Reader in,
                                        Interpolator interpolator)
        this constructor use default begin token ${ and default end token }
        Parameters:
        in - reader to use
        interpolator - interpolator instance to use
      • InterpolatorFilterReader

        public InterpolatorFilterReader​(java.io.Reader in,
                                        Interpolator interpolator,
                                        java.lang.String beginToken,
                                        java.lang.String endToken)
        Parameters:
        in - reader to use
        interpolator - interpolator instance to use
        beginToken - start token to use
        endToken - end token to use
      • InterpolatorFilterReader

        public InterpolatorFilterReader​(java.io.Reader in,
                                        Interpolator interpolator,
                                        RecursionInterceptor ri)
        this constructor use default begin token ${ and default end token }
        Parameters:
        in - reader to use
        interpolator - interpolator instance to use
        ri - The RecursionInterceptor to use to prevent recursive expressions.
        Since:
        1.12
      • InterpolatorFilterReader

        public InterpolatorFilterReader​(java.io.Reader in,
                                        Interpolator interpolator,
                                        java.lang.String beginToken,
                                        java.lang.String endToken,
                                        RecursionInterceptor ri)
        Parameters:
        in - reader to use
        interpolator - interpolator instance to use
        beginToken - start token to use
        endToken - end token to use
        ri - The RecursionInterceptor to use to prevent recursive expressions.
        Since:
        1.12
    • Method Detail

      • skip

        public long skip​(long n)
                  throws java.io.IOException
        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()
      • setInterpolateWithPrefixPattern

        public void setInterpolateWithPrefixPattern​(boolean interpolateWithPrefixPattern)
      • getEscapeString

        public java.lang.String getEscapeString()
      • setEscapeString

        public void setEscapeString​(java.lang.String escapeString)
      • isPreserveEscapeString

        public boolean isPreserveEscapeString()
      • setPreserveEscapeString

        public void setPreserveEscapeString​(boolean preserveEscapeString)