public class MultiDelimiterInterpolatorFilterReader
extends java.io.FilterReader
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
beginToken |
private DelimiterSpecification |
currentSpec |
static java.lang.String |
DEFAULT_BEGIN_TOKEN
Default begin token.
|
static java.lang.String |
DEFAULT_END_TOKEN
Default end token.
|
private java.util.LinkedHashSet<DelimiterSpecification> |
delimiters |
private java.lang.String |
endToken |
private java.lang.String |
escapeString |
private boolean |
interpolateWithPrefixPattern
true by default to preserve backward comp
|
private Interpolator |
interpolator
Interpolator used to interpolate
|
private java.lang.String |
originalBeginToken |
private boolean |
preserveEscapeString
if true escapeString will be preserved \{foo} -> \{foo}
|
private int |
previousIndex
Index into previous data
|
private RecursionInterceptor |
recursionInterceptor |
private java.lang.String |
replaceData
replacement text from a token
|
private int |
replaceIndex
Index into replacement data
|
private boolean |
useEscape |
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) |
Modifier and Type | Method and Description |
---|---|
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) |
private boolean |
reselectDelimiterSpec(int ch) |
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.
|
private Interpolator interpolator
private RecursionInterceptor recursionInterceptor
private java.lang.String replaceData
private int replaceIndex
private int previousIndex
public static final java.lang.String DEFAULT_BEGIN_TOKEN
public static final java.lang.String DEFAULT_END_TOKEN
private boolean interpolateWithPrefixPattern
private java.lang.String escapeString
private boolean useEscape
private boolean preserveEscapeString
private java.util.LinkedHashSet<DelimiterSpecification> delimiters
private DelimiterSpecification currentSpec
private java.lang.String beginToken
private java.lang.String originalBeginToken
private java.lang.String endToken
public MultiDelimiterInterpolatorFilterReader(java.io.Reader in, Interpolator interpolator)
in
- reader to useinterpolator
- interpolator instance to usepublic MultiDelimiterInterpolatorFilterReader(java.io.Reader in, Interpolator interpolator, RecursionInterceptor ri)
in
- reader to useinterpolator
- interpolator instance to useri
- The RecursionInterceptor
to use to prevent recursive expressions.public MultiDelimiterInterpolatorFilterReader addDelimiterSpec(java.lang.String delimiterSpec)
public boolean removeDelimiterSpec(java.lang.String delimiterSpec)
public MultiDelimiterInterpolatorFilterReader setDelimiterSpecs(java.util.LinkedHashSet<java.lang.String> specs)
public long skip(long n) throws java.io.IOException
skip
in class java.io.FilterReader
n
- The number of characters to skipjava.lang.IllegalArgumentException
- If n
is negative.java.io.IOException
- If an I/O error occurspublic int read(char[] cbuf, int off, int len) throws java.io.IOException
read
in class java.io.FilterReader
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.java.io.IOException
- If an I/O error occurspublic int read() throws java.io.IOException
read
in class java.io.FilterReader
java.io.IOException
- if the underlying stream throws an IOException during readingprivate boolean reselectDelimiterSpec(int ch)
public boolean isInterpolateWithPrefixPattern()
public void setInterpolateWithPrefixPattern(boolean interpolateWithPrefixPattern)
public java.lang.String getEscapeString()
public void setEscapeString(java.lang.String escapeString)
public boolean isPreserveEscapeString()
public void setPreserveEscapeString(boolean preserveEscapeString)
public RecursionInterceptor getRecursionInterceptor()
public MultiDelimiterInterpolatorFilterReader setRecursionInterceptor(RecursionInterceptor recursionInterceptor)