org.codehaus.plexus.util

## Class LineOrientedInterpolatingReader

- java.lang.Object
- - java.io.Reader
  - - java.io.FilterReader
    - - org.codehaus.plexus.util.LineOrientedInterpolatingReader

- All Implemented Interfaces:
    Closeable, AutoCloseable, Readable

      public class LineOrientedInterpolatingReader
      extends FilterReader

  A FilterReader which interpolates keyword values into a character stream. Keywords are recognized when enclosed between starting and ending delimiter strings. The keywords themselves, and their values, are fetched from a Map supplied to the constructor.

  When a possible keyword token is recognized (by detecting the starting and ending token delimiters):

  - if the enclosed string is found in the keyword Map, the delimiters and the keyword are effectively replaced by the keyword's value;
  - if the enclosed string is found in the keyword Map, but its value has zero length, then the token (delimiters and keyword) is effectively removed from the character stream;
  - if the enclosed string is not found in the keyword Map, then no substitution is made; the token text is passed through unaltered.

  A token in the incoming character stream may be escaped by prepending an "escape sequence" which is specified to the constructor. An escaped token is passed through as written, with the escape sequence removed. This allows things which would look like tokens to be read literally rather than interpolated.

  Author:
    jdcasey Created on Feb 3, 2005
  See Also:
    `InterpolationFilterReader`, `org.codehaus.plexus.interpolation`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_END_DELIM`
    `static String` | `DEFAULT_ESCAPE_SEQ`
    `static String` | `DEFAULT_START_DELIM`

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

      `in`

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

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LineOrientedInterpolatingReader(Reader reader, Map<String,?> context)` Filters a Reader using the default escape sequence "\" and token delimiters "${", "}".
    `LineOrientedInterpolatingReader(Reader reader, Map<String,?> context, String startDelim, String endDelim)` Filters a Reader using the default escape sequence "\".
    `LineOrientedInterpolatingReader(Reader reader, Map<String,?> context, String startDelim, String endDelim, String escapeSeq)` Construct an interpolating Reader, specifying token delimiters and the escape sequence.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `read()`
    `int` | `read(char[] cbuf, int off, int len)`
    `long` | `skip(long n)`

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

          public static final String DEFAULT_START_DELIM

      See Also:
        Constant Field Values

    - #### DEFAULT_END_DELIM

          public static final String DEFAULT_END_DELIM

      See Also:
        Constant Field Values

    - #### DEFAULT_ESCAPE_SEQ

          public static final String DEFAULT_ESCAPE_SEQ

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### LineOrientedInterpolatingReader

          public LineOrientedInterpolatingReader(Reader reader,
                                         Map<String,?> context,
                                         String startDelim,
                                         String endDelim,
                                         String escapeSeq)

      Construct an interpolating Reader, specifying token delimiters and the escape sequence.
      Parameters:
        `reader` - the Reader to be filtered.
        `context` - keyword/value pairs for interpolation.
        `startDelim` - character sequence which (possibly) begins a token.
        `endDelim` - character sequence which ends a token.
        `escapeSeq` -

    - #### LineOrientedInterpolatingReader

          public LineOrientedInterpolatingReader(Reader reader,
                                         Map<String,?> context,
                                         String startDelim,
                                         String endDelim)

      Filters a Reader using the default escape sequence "\".
      Parameters:
        `reader` - the Reader to be filtered.
        `context` - keyword/value pairs for interpolation.
        `startDelim` - the character sequence which (possibly) begins a token.
        `endDelim` - the character sequence which ends a token.

    - #### LineOrientedInterpolatingReader

          public LineOrientedInterpolatingReader(Reader reader,
                                         Map<String,?> context)

      Filters a Reader using the default escape sequence "\" and token delimiters "${", "}".
      Parameters:
        `reader` - the Reader to be filtered.
        `context` - keyword/value pairs for interpolation.

  - ### Method Detail

    - #### read

          public int read()
                   throws IOException

      Overrides:
        `read` in class `FilterReader`
      Throws:
        `IOException`

    - #### read

          public int read(char[] cbuf,
                 int off,
                 int len)
                   throws IOException

      Overrides:
        `read` in class `FilterReader`
      Throws:
        `IOException`

    - #### skip

          public long skip(long n)
                    throws IOException

      Overrides:
        `skip` in class `FilterReader`
      Throws:
        `IOException`

Copyright © 2015. All rights reserved.