org.codehaus.plexus.interpolation.multi

## Class MultiDelimiterInterpolatorFilterReader

- java.lang.Object
- - java.io.Reader
  - - java.io.FilterReader
    - - org.codehaus.plexus.interpolation.multi.MultiDelimiterInterpolatorFilterReader

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

    public class MultiDelimiterInterpolatorFilterReader
    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.

Version:
  $Id: InterpolatorFilterReader.java 8351 2009-08-20 22:25:14Z jdcasey $
Author:
  cstamas

### Field Summary

Fields
`static java.lang.String` `DEFAULT_BEGIN_TOKEN` Default begin token.
`static java.lang.String` `DEFAULT_END_TOKEN` Default end token.

### Fields inherited from class java.io.FilterReader

`in`

### Fields inherited from class java.io.Reader

`lock`

### Constructor Summary

Constructors
Constructor and Description
`MultiDelimiterInterpolatorFilterReader(java.io.Reader in, Interpolator interpolator)` this constructor use default begin token ${ and default end token }
`MultiDelimiterInterpolatorFilterReader(java.io.Reader in, Interpolator interpolator, RecursionInterceptor ri)`

### Method Summary

Methods
`MultiDelimiterInterpolatorFilterReader` `addDelimiterSpec(java.lang.String delimiterSpec)`
`java.lang.String` `getEscapeString()`
`RecursionInterceptor` `getRecursionInterceptor()`
`boolean` `isInterpolateWithPrefixPattern()`
`boolean` `isPreserveEscapeString()`
`int` `read()` Returns the next character in the filtered stream, replacing tokens from the original stream.
`int` `read(char[] cbuf, int off, int len)` Reads characters into a portion of an array.
`boolean` `removeDelimiterSpec(java.lang.String delimiterSpec)`
`MultiDelimiterInterpolatorFilterReader` `setDelimiterSpecs(java.util.LinkedHashSet<java.lang.String> specs)`
`void` `setEscapeString(java.lang.String escapeString)`
`void` `setInterpolateWithPrefixPattern(boolean interpolateWithPrefixPattern)`
`void` `setPreserveEscapeString(boolean preserveEscapeString)`
`MultiDelimiterInterpolatorFilterReader` `setRecursionInterceptor(RecursionInterceptor recursionInterceptor)`
`long` `skip(long n)` Skips characters.

### Methods inherited from class java.io.FilterReader

`close, mark, markSupported, ready, reset`

### Methods inherited from class java.io.Reader

`read, read`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### 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

### Constructor Detail

#### MultiDelimiterInterpolatorFilterReader

    public MultiDelimiterInterpolatorFilterReader(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

#### MultiDelimiterInterpolatorFilterReader

    public MultiDelimiterInterpolatorFilterReader(java.io.Reader in,
                                          Interpolator interpolator,
                                          RecursionInterceptor ri)

Parameters:
  `in` - reader to use
  `interpolator` - interpolator instance to use
  `ri` - The `RecursionInterceptor` to use to prevent recursive expressions.
Since:
  1.12

### Method Detail

#### addDelimiterSpec

    public MultiDelimiterInterpolatorFilterReader addDelimiterSpec(java.lang.String delimiterSpec)

#### removeDelimiterSpec

    public boolean removeDelimiterSpec(java.lang.String delimiterSpec)

#### setDelimiterSpecs

    public MultiDelimiterInterpolatorFilterReader setDelimiterSpecs(java.util.LinkedHashSet<java.lang.String> specs)

#### 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)

#### getRecursionInterceptor

    public RecursionInterceptor getRecursionInterceptor()

#### setRecursionInterceptor

    public MultiDelimiterInterpolatorFilterReader setRecursionInterceptor(RecursionInterceptor recursionInterceptor)