org.codehaus.plexus.util
Class LineOrientedInterpolatingReader
java.lang.Object
java.io.Reader
java.io.FilterReader
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):
- 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
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.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
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.
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.