Class MultiDelimiterInterpolatorFilterReader
java.lang.Object
java.io.Reader
java.io.FilterReader
org.codehaus.plexus.interpolation.multi.MultiDelimiterInterpolatorFilterReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Readable
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Stringprivate DelimiterSpecificationstatic final StringDefault begin token.static final StringDefault end token.private LinkedHashSet<DelimiterSpecification>private Stringprivate Stringprivate booleantrue by default to preserve backward compprivate InterpolatorInterpolator used to interpolateprivate Stringprivate booleanif true escapeString will be preserved \{foo} -> \{foo}private intIndex into previous dataprivate RecursionInterceptorprivate Stringreplacement text from a tokenprivate intIndex into replacement dataprivate booleanFields inherited from class java.io.FilterReader
in -
Constructor Summary
ConstructorsConstructorDescriptionMultiDelimiterInterpolatorFilterReader(Reader in, Interpolator interpolator) this constructor use default begin token ${ and default end token }MultiDelimiterInterpolatorFilterReader(Reader in, Interpolator interpolator, RecursionInterceptor ri) -
Method Summary
Modifier and TypeMethodDescriptionaddDelimiterSpec(String delimiterSpec) booleanbooleanintread()Returns the next character in the filtered stream, replacing tokens from the original stream.intread(char[] cbuf, int off, int len) Reads characters into a portion of an array.booleanremoveDelimiterSpec(String delimiterSpec) private booleanreselectDelimiterSpec(int ch) setDelimiterSpecs(LinkedHashSet<String> specs) voidsetEscapeString(String escapeString) voidsetInterpolateWithPrefixPattern(boolean interpolateWithPrefixPattern) voidsetPreserveEscapeString(boolean preserveEscapeString) setRecursionInterceptor(RecursionInterceptor recursionInterceptor) longskip(long n) Skips characters.Methods inherited from class java.io.FilterReader
close, mark, markSupported, ready, resetMethods inherited from class java.io.Reader
nullReader, read, read, transferTo
-
Field Details
-
interpolator
Interpolator used to interpolate -
recursionInterceptor
- Since:
- 1.12
-
replaceData
replacement text from a token -
replaceIndex
private int replaceIndexIndex into replacement data -
previousIndex
private int previousIndexIndex into previous data -
DEFAULT_BEGIN_TOKEN
Default begin token.- See Also:
-
DEFAULT_END_TOKEN
Default end token.- See Also:
-
interpolateWithPrefixPattern
private boolean interpolateWithPrefixPatterntrue by default to preserve backward comp -
escapeString
-
useEscape
private boolean useEscape -
preserveEscapeString
private boolean preserveEscapeStringif true escapeString will be preserved \{foo} -> \{foo} -
delimiters
-
currentSpec
-
beginToken
-
originalBeginToken
-
endToken
-
-
Constructor Details
-
MultiDelimiterInterpolatorFilterReader
this constructor use default begin token ${ and default end token }- Parameters:
in- reader to useinterpolator- interpolator instance to use
-
MultiDelimiterInterpolatorFilterReader
public MultiDelimiterInterpolatorFilterReader(Reader in, Interpolator interpolator, RecursionInterceptor ri) - Parameters:
in- reader to useinterpolator- interpolator instance to useri- TheRecursionInterceptorto use to prevent recursive expressions.- Since:
- 1.12
-
-
Method Details
-
addDelimiterSpec
-
removeDelimiterSpec
-
setDelimiterSpecs
-
skip
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:
skipin classFilterReader- Parameters:
n- The number of characters to skip- Returns:
- the number of characters actually skipped
- Throws:
IllegalArgumentException- Ifnis negative.IOException- If an I/O error occurs
-
read
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:
readin classFilterReader- Parameters:
cbuf- Destination buffer to write characters to. Must not benull.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:
IOException- If an I/O error occurs
-
read
Returns the next character in the filtered stream, replacing tokens from the original stream.- Overrides:
readin classFilterReader- Returns:
- the next character in the resulting stream, or -1 if the end of the resulting stream has been reached
- Throws:
IOException- if the underlying stream throws an IOException during reading
-
reselectDelimiterSpec
private boolean reselectDelimiterSpec(int ch) -
isInterpolateWithPrefixPattern
public boolean isInterpolateWithPrefixPattern() -
setInterpolateWithPrefixPattern
public void setInterpolateWithPrefixPattern(boolean interpolateWithPrefixPattern) -
getEscapeString
-
setEscapeString
-
isPreserveEscapeString
public boolean isPreserveEscapeString() -
setPreserveEscapeString
public void setPreserveEscapeString(boolean preserveEscapeString) -
getRecursionInterceptor
-
setRecursionInterceptor
public MultiDelimiterInterpolatorFilterReader setRecursionInterceptor(RecursionInterceptor recursionInterceptor)
-