org.codehaus.plexus.util
Class LineOrientedInterpolatingReader

java.lang.Object
  extended by java.io.Reader
      extended by java.io.FilterReader
          extended by org.codehaus.plexus.util.LineOrientedInterpolatingReader
All Implemented Interfaces:
Closeable, 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):

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
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
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
 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 © 2001-2012 Codehaus. All Rights Reserved.